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 更改為網站根目錄。