1. 程式人生 > >YII2框架AJAX請求報500錯誤的處理方法

YII2框架AJAX請求報500錯誤的處理方法

初接觸YII2時,雖然也是MVC,但對其執行機制一臉懵逼,需求用到AJAX,使用原生的jquery寫法 $.post()進行的請求發現一個問題。剛開始是400,瀏覽器直接訪問連結是可以的。但是用AJAX請求是錯誤的,查看了手冊才發現,需要csrf的認證。

這個問題解決方法至少有三種:

1.conf配置裡面的web.php,你設

enableCsrfValidation=false; 

2.controller裡。

 

意味著關掉了認證

3.用yii自帶的建立表單以外會自動傳遞一個_csrf的引數外,原生的寫法也可以自己帶上引數進行認證。

 

 

這樣可以避免認證導致的400問題。

但是。。。

接下來是遇到的一個500問題。

 

如圖,一個ajax的請求,明明是成功的,而且已經返回正確的json了。但是卻提示500!

用瀏覽器直接開啟地址,顯示是正常的JSON文件。但是請求卻是錯的。這是為什麼呢?

這時候因為不熟YII框架的我,各種猜想可能,經過大量時間的驗算和嘗試。終於得出結論。被某女程式猿背後捅了一刀,她在base那邊寫了一個日誌記錄,因為使用未定義的變數,報了一個非致命的警告錯誤,然而yii這邊卻沒有報出來。於是乎,500了。但是json卻是正確的這樣一個噁心錯誤。這是一個悲傷的故事。

有遇到同樣問題的可以從這方面找找看。沒遇到的保持警惕。