1、場景
ajax請求php腳本返回404狀態碼,但php腳本能夠輸出數據,導致ajax的的回調函數無法繼續執行。
排查過程:
1、懷疑是自己寫的框架有問題,在浏覽器窗口中請求ajax的請求腳本路徑,頁面能夠正常打開。
2、寫個php腳本,直接輸出一個json格式的字符串,用ajax請求,依舊返回狀態碼為404.
3、寫個html頁面用ajax請求,返回狀態碼為405.
4、排查nginx配置參數,發現fastcgi配置存在問題。
解決方法:
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }
更改為
location ~ \.php$ { root /www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; }
root 為網站運行根目錄。
/scripts 更改為網站根目錄。