0
我想做一個CORS獲取請求,說谷歌(只是一個例子,我實際上訪問一個網站,返回JSON數據)。下面是我的Ajax代碼:CORS請求與Ajax/Javascript/Django
$.ajax({
url: "https://www.google.com",
type: "get",
dataType: "json",
crossDomain: true,
success: function(data, textStatus) {
alert ("success" + data);
},
error: function(data, textStatus) {
alert ("fail" + data);
}
})
與上面的代碼我得到這個錯誤:
XMLHttpRequest cannot load https://www.google.com/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://sdlweb-dev:1234' is therefore not allowed access. The response had HTTP status code 405.
我嘗試添加如下代碼
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "X-Requested-With,content-type",
"Access-Control-Allow-Credentials": true
}
,但仍然得到了同樣的錯誤。
我試着將dataType從'json'改爲'jsonp'。通過這種方式,請求被髮送,但由於響應不JSONP,我得到了另一個錯誤:
Uncaught SyntaxError: Unexpected token <
,而無需修改服務器端(我的意思是我送get請求的url,因爲我沒有訪問),我可以發送CORS請求嗎?
任何幫助表示讚賞!
感謝,
飛
謝謝!通過服務器,你的意思是我試圖訪問的服務器,對吧? (不是我的服務器,我託管我的網站) – Feiiiiiiiiiiiii
此外,我能夠通過將dataType設置爲「jsonp」來獲得響應。但由於返回的數據類型不是「jsonp」,是否有辦法以某種方式包裝它並獲取內容? – Feiiiiiiiiiiiii
@Feiiiiiiiiiiiii回答你的第一條評論:是的。回答你的第二個問題:不。 – idbehold