即使HTTP 200状态,jQuery Ajax也会失败

时间:2013-03-12 07:52:39

标签: jquery ajax

正如标题所说,我有这个Javascript代码:

$.ajax({
      type: "GET",
      url: "http://192.168.20.249/test.brick",
      dataType: "json"
      }).done(function() { alert("success"); }).fail(function() { alert("error"); }).always(function() { alert("complete"); });

我的网络服务器发送这些数据:

200 OK
Date:  Tue, 12 Mar 2013 07:49:51 GMT

Server:  Hiawatha v8.8

Connection:  keep-alive

Transfer-Encoding:  chunked

Content-Type:  application/json

{"Test": "Hello"}

知道为什么jQuery认为请求失败了吗?

2 个答案:

答案 0 :(得分:1)

由于您的jquery脚本服务器和Web服务器不同,它应该是跨域问题。

您应该使用 jsonp 进行此次沟通。

以下是一个可以帮助您的示例

http://www.jquery4u.com/json/jsonp-examples/

答案 1 :(得分:0)

也许你可以使用error回调来获取jQuery看到的错误的更多信息?

$.ajax({
    type: "GET",
    url: "http://192.168.20.249/test.brick",
    dataType: "json",
    error: function(jqXHR, textStatus, errorThrown){
        ("error: " + textStatus); //Check all parameters in this callback
    },
    success: function(){
        alert("success"); 
    }
});

编辑:跨域ajax并不像人们希望的那样方便。