2014-05-25 51 views
0

我有以下的javascript:與JSONP Ajax響應,可以看到結果不能使用它

jQuery(document).ready(function($) { 

    var id = "123"; 
    var api = "example.com:8999/".concat(id) 

    $.ajax({ 
      url : api, 
      type: 'GET', 
      dataType: 'jsonp', 
      // jsonpCallback: "localcallback", 
      success: function (data) { alert('success'); } 
    }) 
}); 

我可以看到Chrome瀏覽器開發工具的響應,但警報是沒有得到調用。最終我需要使用此響應來設置div的值。鉻工具

圖片:

Response

感謝

編輯:把 'POST',用 'GET',仍然沒有工作。另外,我認爲我更喜歡「媽媽和流行」json,但是由於CORS和事實上我不擅長網絡,只是試圖一起破解它。

+0

你不能用JSONP POST,嘗試使用'type:'GET'' – Charlie

+0

http://stackoverflow.com/questions/2699277/post-data-to-jsonp檢查這個 –

+0

道歉,請參閱我的編輯,'' GET'也不工作。 – tshauck

回答

0

您的服務器沒有返回JSONP。它返回純JSON。如果指定JSONP,則服務器必須顯式創建JSONP格式的響應,否則將不會正確接收和處理ajax響應。通過腳本標記發送JSONP請求(這就是它如何繞過跨域請求的同源限制),並且響應必須格式化爲調用函數並傳遞請求的數據的腳本到那個功能。你可以閱讀關於JSONP如何工作here

0

只需在不指定'dataType'屬性的情況下進行ajax調用,如果您的ajax調用成功完成,那麼控件應該返回到您的成功回調。

供參考: jQuery將嘗試根據該響應的MIME類型找到響應數據類型。

例子:

$(function() { 
    $.ajax({ 
    url :"http://example.com:8999/123", 
    type: 'GET', 
    success: function (data) { 
    console.log(data); // Prints the response on console 
    alert('success'); 
    } 
    }) 
}); 

如果你想撥打這個電話只能用JSONP那麼這將是更好地與我們分享的原因,這樣我們就可以如果有可能提出一個更好的解決方案。

相關問題