【发布时间】:2014-04-24 04:32:59
【问题描述】:
我的 js 中有这个 ajax 调用。通过这个请求,我想知道是否有以前打开的会话,在这种情况下,它将显示登录表单。
所以,如果没有以前的会话,服务器返回错误 400 错误请求(laravel 响应类)。但是当服务器返回时,$.ajax 对象并没有触发错误函数。有谁知道为什么?
服务器响应
$data =[
'error' => [
'message' => 'Authentication Error',
'statusCode' => 400
]
]
Response::json($data, 400, [])
->setCallback(Input::get('callback'));
Ajax 请求
$.ajax({
global: true,
method: 'POST',
dataType: 'jsonp',
url: 'http://localhost:8082/api/checkAuth?callback=?',
success: function(response) {
return console.log(response);
},
error: function(a, b, c) {
console.log(a);
console.log(b);
return console.log(c);
}
});
我也尝试过获取状态码来触发功能,但它无论如何都不起作用:
** Ajax 请求 **
$.ajax({
global: true,
method: 'POST',
dataType: 'jsonp',
url: 'http://localhost:8082/api/checkAuth?callback=?',
success: function(response) {
return console.log(response);
},
statusCode:{
400: function(a,b,c){
console.log(a);
console.log(b);
console.log(c);
}
}
});
谢谢大家的帮助
一些更新:
感谢 manish,我发现了这个 plugin 用于处理 jsonp 请求,它触发了错误功能。有谁知道如何在错误函数中捕获返回的状态码?
【问题讨论】:
-
在浏览器中按
F12并选择“网络”选项卡以检查服务器是否真的在应答以及js 得到的状态码是什么。 -
已经完成,请求响应 400,如果我将服务器的响应代码更改为 200,成功函数就会像魅力一样触发。
-
return console.log(response);return没有意义。 -
coffeescript就是这样编译的
标签: javascript php jquery ajax jsonp