嘗試通過jQuery向CloudFlare發送JSONP請求時,我收到錯誤(XMLHttpRequest cannot load https:// www.cloudflare.com/api_json.html?tkn=&email=&z=&a=rec_load_all&callback=%3F. Origin http:// domainmanager.tech-bytes.org is not allowed by Access-Control-Allow-Origin.)
(由於堆棧溢出鏈接限制而插入到URL中的空格)。 CloudFlare API指出你可以通過追加&callback=mycallback
參數來請求一個JSONP回調函數。我不確定我是否應該用某種東西取代mycallback,我試着用它取代它?因爲這就是其他一些資源所說的,或者如果我必須對my code進行一些其他修改。使用帶CloudFlare API的jQuery JSONP時的同源策略錯誤
回答
以這種方式嘗試跨域請求。
$.ajax({ url: "yourUrl",
data:{paramName1: JSON.stringify(paramValue1),paramName2: JSON.stringify(paramValue2)},
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(data) {
alert(data.d);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
+1爲dataType:「jsonp」,但我不認爲你通常需要參數的JSON.stringify(除非它們是你希望序列化的對象),我相信錯誤回調不會觸發jsonp請求(不妨添加處理程序,但不要感到驚訝,如果它沒有激活)。 – Iftah 2013-02-27 07:45:17
有沒有辦法使用JSONP,同時仍然使用.getJSON速記方法,還是必須使用.ajax方法?我正在閱讀[API文檔](http://api.jquery.com/jQuery.getJSON/),並看到他們有一個使用.getJSON從Flickr JSONP API檢索數據的示例,但無法弄清楚如何將其應用於我的代碼,或者它與常規JSON請求的區別。 – GCGMark 2013-02-27 08:21:45
@NGWMark在.getJSON中,我們不聲明數據類型爲jsonp。並且總是嘗試使用.ajax方法,從而更好地控制請求。 – Vishwajeet 2013-02-27 08:45:10
您可以使用CORS來達到此目的。
示例代碼:
jQuery.support.cors = true;
function CrosDom_ajax(url) {
if (window.XDomainRequest
&& $.browser.msie
&& $.browser.version < 10) {
xdr = new XDomainRequest();
if (xdr) {
xdr.onload = function() {
alert(xdr.responseText);
};
xdr.open("get", url);
xdr.send();
}
}
else {
$.ajax({
url: url,
success: function (response) {
},
error: function (data) {
}
});
}
}
你也需要寫在服務器端下面的代碼,允許跨域訪問
Response.AppendHeader("Access-Control-Allow-Origin", "*");
- 1. Jquery .load同源策略
- 2. 同源策略
- 3. jFeed同源策略
- 4. 使用jQuery獲取跨源策略錯誤
- 5. 相同來源政策錯誤,jQuery
- 6. XMLHttpRequest同源策略
- 7. javascript中的同源策略
- 8. QtWebkit同源策略
- 9. 違反了同源策略?
- 10. 同源策略的例外
- 11. CloudFlare的API PHP錯誤
- 12. jQuery .ajax和相同來源策略
- 13. jQuery加載問題同源策略
- 14. Ajax同源策略和Jquery $ .getJSON
- 15. JavaScript:「同源策略」失敗
- 16. 同源政策錯誤
- 17. 如何避免使用AWS API Gateway和CloudFront時的同源策略異常
- 18. 移動應用上的同源策略
- 19. 相同的域策略jQuery
- 20. 同源策略 - AJAX及使用公共API
- 21. 是IndexedDB和同源策略
- 22. 抑制同源策略
- 23. 使用jsonp錯誤的jQuery ajax請求
- 24. 同源策略文件
- 25. 同源策略局域網
- 26. Safari和Javascript - 同源策略?
- 27. iframe - 位置 - 同源策略
- 28. cURL繞過同源策略
- 29. 解決運行時錯誤的策略
- 30. 策略中的HttpContext錯誤
什麼是控制檯? '200狀態'。 – Jai 2013-02-27 05:53:06
我不確定你的意思。我發佈了上面的控制檯中的內容,除非你的意思是不同的控制檯?我還發布了我存儲代碼的地址,您可能會在那裏檢索信息。 – GCGMark 2013-02-27 06:04:12
我檢查了你的json api url和'那是成功的狀態來自200' – Jai 2013-02-27 06:07:49