AJAX:只触发了错误回调

时间:2015-08-19 12:32:28

标签: javascript php jquery ajax curl

我已声明successerror个回调,但在状态代码200的情况下,它也只调用错误回调。

我一直在php内部对其他registry.php文件进行卷曲调用。

这是我试过的:

$.ajax({
  type: "POST"
  ,data: {
    action: "blah"
    ,mobileNo: that.mobNo
    ,token: that.key
  }
  ,url: "http://90.8.41.232/localhost/registry.php"
  ,cache: false
  ,dataType: "json"
  ,success: function (response) {
    console.log("success");
  }
  ,error: function () {
    console.log("error");
  }
});

我在文档中读到我们没有明确地调用成功回调,希望它是正确的。

任何想法如何在200状态代码时调用成功回调。

RESPONSE 希望这会有所帮助,这是我从chrome控制台复制的,不是由console.log()打印的。

bort: (statusText)
always: ()
complete: ()
done: ()
error: ()
fail: ()
getAllResponseHeaders: ()
getResponseHeader: (key)
overrideMimeType: (type)
pipe: ()
progress: ()
promise: (obj)
readyState: 4
responseText: "{"success":"Mobile No 9535746622 is approved"}      {"report":true}"
setRequestHeader: (name,value)
state: ()
status: 200
statusCode: (map)
statusText: "OK"
success: ()
then: ()

3 个答案:

答案 0 :(得分:2)

首先,检查你得到的真实错误(不确定你真的得到200状态?)

error: function (err) {
  console.error("error");
  console.log(err);
  console.log(err.stack);
  throw err;
}

请告诉我们生成的日志。

答案 1 :(得分:2)

正如您所提到的那样,您正在与其他curl进行php来电,无论您何时拨打curl电话,都必须返回{{1}的回复到客户端。因此,要转移curl调用的return值,您必须设置选项curl。 这将解决您的问题。希望如此。

答案 2 :(得分:-2)

几个星期前我就这样做了,对我来说,如果我把它称为

,它就有用了
$.ajax(
{
    type: "POST",
    data: { action: "blah", mobileNo: that.mobNo, token: that.key },
    url: "http://90.8.41.232/localhost/registry.php",
    cache: false,
    dataType: json,
})
.success (function (data, status, jqxhr)
{
    // do your stuff
})
.error (function(x, status, jqxhr) 
{
    // handle your errors
});