繁体   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