php - Laravel,使用jquery ajax返回响应400错误

标签 php jquery ajax laravel

几个月前我使用 Laravel 4.1 构建了一个 Web 系统,在我的请求中我使用了 Response::json();将数据返回到 jquery ajax。

  • 200 返回成功并被 ajax 的 .done() 捕获。
  • 400 返回失败/错误并被 ajax 的 .fail() 捕获。

效果非常好!

现在的问题是,我正在使用 Laravel 4.2 构建另一个 Web 系统,并且使用相同的错误代码 200 和 400...200 工作正常,但 400 不起作用,因为例如:

Laravel

<?php

    public function example()
    {
        if (Input::get('param1') === 'value1') {
            return Response::json(array(
                'msg' => 'Correct!' 
            ), 200);
        }

        return Response::json(array(
            'msg' => 'Incorrect!'
        ), 400);
    }
?>

jQuery(我使用相同的 jquery 版本:1.10.2)

$.ajax({
    url: 'example',
    type: 'post',
    dataType: 'json',
    data: {param1: 'value1'},
})
.done(function(data) {
    console.log(data.msg);
})
.fail(function(data) {
    console.log(data.msg);
})
.always(function() {
    console.log("complete");
});

在这两种情况下,请求都正确返回 json,但是...

当正确/200时,ajax的.done()在控制台中正确显示消息,但如果是错误/400,ajax的.fail()不显示消息,而是显示未定义,我不知道发生了什么。

希望你能帮助我。

已解决

检查我的 self 回答。

最佳答案

已解决

我可以使用以下命令在失败时接收 json:

fail(function(jqXHR)) {
      console.log(jqXHR.responseJSON.msg);
}

并且工作正常!

关于php - Laravel,使用jquery ajax返回响应400错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917786/

相关文章:

javascript - AngularJS 如何访问对象的值

php - 编码一般的 4 位字母数字系列

php - 使用像 Kickstarter 这样的 Paypal Adaptive Payments API 使用 Amazon Payments?

javascript - 在输入(数字)的按键上添加/删除输入(文本)

jquery - 制作一个 Angular 指令抛出一个我可以在 jquery 中绑定(bind)的事件

c# - MVC Ajax 表单返回 View 的全部内容

php - 如何制作 n :1 multiple tags system for a blog & which database schema is better?

php - 替换图像(通过单击图像)

javascript - 将输入字段设置为标签元素的当前值

php - 清理ajax中使用的$_GET var