jQuery ajax回调从未调用过

Luc*_*nan 11 javascript jquery jquery-callback

Javascript代码,使用jQuery 1.7:

$( function() { 
  $.get('/ajax_dummy', function() { alert('foo');  })
});
Run Code Online (Sandbox Code Playgroud)

使用Firebug,我可以看到HTTP GET请求已发送,并返回代码为200的"hello world"响应,因此一切似乎都很好.但回调永远不会被调用.

我不知道出了什么问题; 这应该是这么简单吧?

Esa*_*ija 9

你没有提供,dataType所以jQuery对Content-Type你所说的响应头中的内容类型进行了"智能猜测" application/json.

因此jQuery将响应视为JSON,这意味着它将尝试自动解析它,从而导致错误.

因为请求导致错误

$.parseJSON( "hello world" );
"Invalid JSON: hello world"
Run Code Online (Sandbox Code Playgroud)

成功的回调显然不会被解雇.


Naf*_*Kay 5

给这个撕裂:

$.ajax("/ajax_dummy", {
    dataType: "text",
    success: function() {
        console.log("winning.");
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus); //error logging
    }
});
Run Code Online (Sandbox Code Playgroud)