2010-03-26 64 views
0

我正在使用JQuery进行Ajax调用。我用嗅探器来捕捉响应文本:JQuery响应为空,但实际响应不是

{"error_code":0,"message":"SUCCESS","data":{"session_token":"3efd9dde-a839-4e91-9415-4c2f6cba5b7b"}} 

但是,成功回调返回的响应为空。任何人有任何想法? (请参见下面的jQuery代码

jQuery代码:?

$.ajax({ 
    type: "GET", 
    url: "http://184.72.58.99/matchaapi/API/User/Login", 
    data: { email: emailval, password: pwordval, developer_key: devkey }, 
    dataType: "json", 
    cache: false, 
    beforeSend: function(xhr) { 
          xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
         }, 
    success: function(resp) { 
     alert(resp); 
     $("#status p").html(resp.message); 
    }}); 

回答

3

只是一个猜测......您的网站是否与您尝试拨打的API在同一网站上提供服务?除非您使用JSONP(请参阅jsonp parameter in jQuery.ajax()),否则无法直接从浏览器向另一台服务器发出AJAX请求。如果API不支持它,则需要通过Web服务器代理这些呼叫。

+0

是。就是这样。完全忘记了这一点。非常感谢! – 2010-03-26 08:06:42

+2

太好了。你能帮我打一个答案旁边的绿色“接受”复选标记吗?欢迎来到堆栈溢出! – 2010-03-26 15:31:07

1

什么的jQuery的版本,什么浏览器尝试绑定到complete事件,而不是success事件

+0

+1 - 如果我没有记错,'complete'会返回一个响应,而'success'则不会。 – jps 2010-03-26 03:45:19

+0

感谢您的快速回复: firefox 3.6.2和safari 4.0.4 jquery 1.4.2 完成只返回文本状态和请求对象,而不是响应。 (我试过了。) – 2010-03-26 04:13:55

1

据jQuery的API docs

的[成就]功能被传入三个 参数:数据来自返回服务器,根据 'dataType'参数格式化

也许数据未格式化为正确的JSON?