我正在嘗試使用jQuery來查詢返回XML的RESTful服務。我無法訪問服務器,因此我無法更改它提供的輸出或標題。如何在沒有訪問服務器的情況下獲取訪問控制 - 允許 - 來源錯誤的情況下調用REST服務?
響應我收到的XML,但當然我得到一個跨站點腳本錯誤。
要解決這個問題,我嘗試使用JSONP,但因爲我收到的格式是XML,也錯誤:(資源解釋爲腳本,但與MIME類型application/XML傳輸)。
我看到在使用Safari的網絡督察內容的XML響應,所以是有辦法,我可以防止這種錯誤,並使用XML進行?
我希望這是有道理的。作爲參考,這裏是我試過的代碼:
首先是原來的ajax查詢導致錯誤:XMLHttpRequest無法加載https://the-rest-url/xxx。來源http://127.0.0.1:8020是不允許的訪問控制允許來源(這是本地主機,因爲我用我的電腦開發 - 我也嘗試部署到Web服務器)。
$.ajax({
url: 'https://the-rest-url/xxx',
success: function() {alert("success");},
error: function() {alert("error")}
});
接下來是JSONP嘗試返回的XML,而導致資源解釋爲腳本但與MIME類型application/XML傳送。錯誤。我也試過dataType:「jsonp文本」和其他變化...
$.ajax({
url: 'https://the-rest-url/xxx',
success: function() {alert("success");},
error: function() {alert("error")},
dataType: "jsonp",
jsonp: "jsonpCallback"
});
任何幫助極大讚賞。 謝謝。
謝謝。雖然我懷疑它,但我希望這不會是答案;)最終,我想將它放到Google Gadget中,所以我無法使用服務器端封裝器嗎?或者,Google Gadgets完全有另一種方式嗎?再次感謝。 – Darren
那麼沒有什麼阻止你創建一個返回JSONP的包裝器。 – Daff