我想創建一個jsonp請求的服務器和客戶端,我似乎無法使其工作。我瀏覽過很多指南,博客文章等,但幾乎每個人都只顯示客戶端。JSONP - 訪問控制 - 允許來源和MIME類型錯誤
這裏是我的客戶端代碼
$.ajax({
dataType: 'application/json',
data: params,
jsonp: 'jsonpCallback',
url: settings.domain + '/httpext.dll?json_cc',
success: function (data) {
//determine the return status
},
error: function (response, status, error) {
//error handling
}
}); //end ajax
現在,服務器這樣
jsonpCallback({"username":"meltingice","posts"1234});
我的問題返回一個硬編碼值是我不能請求和響應的共同努力。目前,該響應返回應用程序/ JSON,所以如果我改變了我的請求RO期待與
資源解釋爲腳本,但使用MIME類型application/JSON轉移JSONP它的錯誤。 未捕獲的ReferenceError:未定義jsonpCallback
首先,如您所見,我定義了jsonpCallback。
現在,如果我改變的數據類型爲應用程序/ JSON,然後我得到這個錯誤
XMLHttpRequest cannot load http://myserver/httpext.dll?json_cc&sid=adsfhasjdkfhajksdghjk%3Basdhg&action=SALE&ccCard=&ccNum=&ccExMM=0&ccExYYYY=0&ccCVV2=&holdersName=&totalDue=0&dueDate=11%2F19%2F2010. Origin http://localhost:59905 is not allowed by Access-Control-Allow-Origin.
正如你所看到的,它並沒有給callback=?
到URL。這很令人沮喪。
如何設置服務器端,以便我可以使用jsonp調用它?我需要什麼響應類型?如何格式化返回的數據,以便我的客戶端代碼可以撤回數據?
我已經改變了代碼來拉入默認的回調名稱,但我仍然收到其他錯誤。資源被解釋爲腳本,但通過MIME類型application/json傳輸。 – Josh 2010-11-19 20:44:34