2010-03-26 59 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?