2014-09-12 97 views
1

我有一个JSON字符串与我{offer.offer.offerId.USSellerId:{$ GT:50}}。我所要做的就是使用这个json查询作为有效负载调用POST REST服务并获取返回的JSON。阿贾克斯后返回Object {readyState的= 0,状态= 0,状态文本= “错误”}

我能够使用先进的铬其余客户端调用该服务,我找回数据。但我的问题是,当我尝试使用下面的代码行来调用这个服务,我得到以下错误

$.ajax({ 
     url:"http://10.242.172.12:8080/cqs/services/services/cqs/search", 
     Accept: "application/json", 
     type: "POST", 
     contentType: "application/json", 
     data: {"offer.offer.offerId.USSellerId": {"$gt": 50}}, 
     async:true, 
     crossDomain: true, 
     always: function(data, textStatus, errorThrown) { 
     console.log(data) 
     console.log(textStatus) 
     }, 
     success: function (data) { 
      console.log(data) 
      alert(data); 
     }, 
     error: function (data, status, err) { 
      console.log(data) 
      console.log(status) 
      console.log(err) 
     } 
    }); 

我在控制台看到以下内容:

对象{readyState的= 0,状态= 0,状态文字=“错误”} 错误 emptry字符串..

我无法理解此错误。当我没有谷歌这个错误,许多建议告诉它可能是跨浏览器问题。我无法控制服务器端代码。

我该如何修复客户端的跨浏览器错误?

+0

你检查'内容type' http头?如果你真的在发送json数据,你应该在'ajax'设置中指定正确的'contentType',因为jQuery使用'application/x-www-form-urlencoded'作为默认的内容类型,参见[documentation](http:// api.jquery.com/jquery.ajax/)。 – 2014-09-13 20:08:42

+0

嗨IIya,我改变了我的jQuery的岗位AJAX,但这个时候,我得到一个奇怪的错误回到它没有什么可说的:( – user3773712 2014-09-13 23:04:28

+0

最有可能您的要求甚至不会现在送两件事情 - 包装您的数据对象在'JSON.stringify()'中,并在控制台中寻找错误 – 2014-09-14 07:24:52

回答

3

请检查XMLHttpRequests being stopped

如果你最终与具有状态一个XMLHttpRequest = 0和 状态文本= null,则意味着该请求是不允许被 执行。这是不安全的。这方面的一个可能的原因是当 XMLHttpRequest的原点(在创建了XMLHttpRequest的)具有 当XMLHttpRequest是再打开()改变。这种情况可能发生 例如当一个人有一个的XMLHttpRequest是大干快上的 onunload事件发射的窗口:在XMLHttpRequest的获取实际上创建 时要关闭的窗口仍然存在,然后将请求 发送(即打开()),当这个窗口已经失去了焦点并且可能不同的窗口已经获得焦点。避免这个问题的方法是 在新窗口设置了一个侦听器“activate”事件,当 旧窗口的“卸载”事件触发时,该事件被设置。