2014-11-04 262 views
0

我創建了一個通過跨域獲取數據的jsonp ajax調用。 現在的事情是 - 我成功地操縱它通過網絡服務器發送數據。JSONP - 回調不叫

但它無法在get調用中接收數據。當我查看調試器時,我看到網絡選項卡接收文件,並在其中存在數據。但我仍然收到一條錯誤消息。

url通過jquery回調鍵獲取參數。我的webservices使用該密鑰並將其添加到響應頭中。 (我也在調試器中看到)。我也收到了接收數據的網絡選項卡OK200狀態代碼...

現在的問題是,爲什麼AJAX調用不會跳進成功的功能,但顯示我每次錯誤回調ISN不叫。

我該怎麼做?

的代碼看起來是這樣的:

$.ajax({ 
     url: getServicePath, 
     dataType: 'jsonp', 
     username: "abc", 
     password: "123", 
     contentType: "application/json", 
     success: function(results) { 
       alert(results); 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("Status: " + textStatus); alert("Error: " + errorThrown); 
     } 

感謝您的幫助! :)

+0

它看起來像你試圖使用的遠程資源不支持jsonp ....只是在客戶端使用jsonp是不夠的...它需要服務器也支持 – 2014-11-04 08:32:07

+0

但我設置來自遠程資源的響應頭中的原始回調。如: 響應標題:回調:jQuery171011685512703843415_1415089316044 – abc 2014-11-04 09:00:49

回答

0

我解決了這個問題。

該webservice是一個SAP ABAP webservice。問題是我沒有包含以下代碼行來正確支持jsonp。

CONCATENATE _callback '(' _json_string ')' INTO _json_string。