Javascript 函数没有触发?

Javascript 函数没有触发?,javascript,php,jquery,ajax,jsonp,Javascript,Php,Jquery,Ajax,Jsonp,我的js中有这个ajax调用。通过这个请求,我想知道是否有以前打开的会话,在这种情况下,它将显示登录表单 因此,如果没有以前的会话,服务器将返回错误400 bad request laravel response class。但是当服务器返回时,$.ajax对象不会触发error函数。有人知道为什么吗 服务器响应 Ajax请求 我也尝试过获取状态代码以触发函数,但它无论如何都不起作用: **Ajax请求** $.ajax({ global: true, method: 'POST',

我的js中有这个ajax调用。通过这个请求,我想知道是否有以前打开的会话,在这种情况下,它将显示登录表单

因此,如果没有以前的会话,服务器将返回错误400 bad request laravel response class。但是当服务器返回时,$.ajax对象不会触发error函数。有人知道为什么吗

服务器响应

Ajax请求

我也尝试过获取状态代码以触发函数,但它无论如何都不起作用:

**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,我发现了处理jsonp请求的方法,它触发了错误函数。有人知道如何在error函数中捕获返回的状态代码吗?

代码中没有问题,这是如何处理json和jsonp响应的。检查以了解如何处理错误响应。你可以用
为了处理jsonp请求响应,我假设服务器返回400,因为它需要POST请求,jsonp只能发送GET请求。您可能不想使用jsonp,而是想使用。

在浏览器中按F12键,然后选择“网络”选项卡,检查服务器是否真的在应答,以及js的状态码是什么。完成后,请求将响应400,如果我将响应码从服务器更改为200,成功函数的触发方式类似于charm.return console.logresponse;返回没有意义。这就是coffeescript编译它的方式。这应该是一个评论,而不是一个答案。谢谢你,伙计,我使用了你建议的插件,效果很好。我想在产生错误时捕获状态码,只是为了过滤400 what means login failure或其他状态码。你知道怎么做吗?我故意返回状态码400,我在错误处理方面遇到了问题,没有避开状态码400。谢谢你的回答。老兄,正如你所说,我最终放弃了jsonp而使用CORS。再次感谢你的回答。
$.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({
  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);
    }
  }
});