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 执行跨域请求时,它会给我抛出一个错误 请求的资源上不存在"访问控制-允许源"标头。因此,不允许访问源"http://localhost:8000"。我怎么能解决这个问题,因为我不坚持 JSONP 的解决方案。还有其他解决方案可以解决它吗?而且我在服务器端无法控制,因为它是第三方服务器。
没有办法使用纯粹的客户端代码读取数据。
您需要从服务器发出请求,并让客户端代码从该服务器获取数据。
所述服务器将与托管JS的页面相同,或者将使用CORS向您的源授予权限。
问题是这个请求是由客户端而不是服务器抛出的。解决此问题的一种方法是使用代理,例如PHP代理,以便您实际上通过服务器脚本(例如使用cURL)检索数据,并使JS脚本请求服务器页面而不是跨服务器页面。
PHP 网络代理已经存在,查看此处或此处可能会让您了解如何实现所需的目标。
除了要求其他服务器的所有者将您列入白名单之外,没有办法仅使用 JS 来实现它,这在大多数情况下确实不太可能。