簡體   English   中英

如何從JavaScript發出跨域請求

[英]How to make a cross domain request from javascript

 var http = new XMLHttpRequest(); var url = "http://example.com/"; http.crossDomain = true; http.withCredentials = true; http.open("GET", url, true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.send(); console.log(http.responseText); 

當我嘗試從代碼中看到來自javascript的跨域請求時,它拋出錯誤:請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問源' http:// localhost:8000 '。 由於不勸說JSONP解決方案,我該如何解決。 還有其他解決方案可以解決嗎? 而且由於它是第三方服務器,因此我無法控制服務器端。

無法純粹使用客戶端代碼讀取數據。

您需要從服務器發出請求,並使客戶端代碼從服務器獲取數據。

所述服務器將與托管JS的頁面具有相同的來源,或者將是使用CORS為您的來源授予權限的服務器。

問題在於此請求是由客戶端而不是服務器引發的。 解決此問題的一種方法是使用代理, 例如 PHP代理,以便實際上通過服務器腳本(例如,使用cURL )檢索數據,並使JS腳本而不是跨服務器請求服務器頁面。

PHP Web代理已經存在,在此處此處查找可能會給您一個有關如何實現所需內容的想法。

除了要求另一台服務器的所有者將您列入白名單之外,沒有其他方法只能使用JS,這在大多數情況下確實不太可能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM