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却是正确的这样一个恶心错误。这是一个悲伤的故事。

有遇到同样问题的可以从这方面找找看。没遇到的保持警惕。

猜你喜欢

转载自blog.csdn.net/q741983251/article/details/83587635