【发布时间】:2014-09-15 01:38:36
【问题描述】:
几个月前我使用 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() 不显示消息而是显示 undefined 并且我不知道怎么回事。
我希望你能帮助我。
已解决
检查我的自我回答。
【问题讨论】:
-
如果您自己注销
data会怎样?