【发布时间】:2016-08-14 19:50:14
【问题描述】:
我正在尝试使用以下代码从 API 中提取数据并在 Firefox 上的 HTML 页面中运行它:
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
url = 'https://xxxx.xxx?p=api';
xobj.open('GET', url, true);
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200")
parsedjson = xobj.responseText;
parsedjson = JSON.parse(parsedjson);
但我收到以下错误:
跨域请求被阻止:同源策略不允许读取 https://xxxx.xxx?p=api 的远程资源。 (原因:CORS 标头 'Access-Control-Allow-Origin' 缺失)。
以及以下响应标头(状态:302):
Cache-Control: private
Content-Length: 502
Content-Type: text/html; charset=utf-8
Date: <Scrubbed>
Location: https://xxxx.xxx?p=api&additionalparameter=data
Server: <Scrubbed>
Set-Cookie: value: path=/; secure; HttpOnly
<Scrubbed>
X-AspNet-Version: <Scrubbed>
X-Frame-Options: SAMEORIGIN
X-Powered-By: ASP.NET
X-UA-Compatible: IE=edge
x-href: <Scrubbed>
知道请求标头包含以下内容可能很有用:
Origin: null
我已经阅读了有关 JSONP 和 CORS 的信息 - 但不确定哪些适用于此,以及如何使用。我将如何更新我的代码以获取数据?请注意,我对服务器没有任何控制权,但是如果我通过浏览器访问,我可以访问数据。
我还读到一个选项是设置我自己的小型服务器。这可能行得通,但这个项目的要求是使其成为客户端(这样我就可以与其他人共享 js/html 文档,他们可以即插即用,而无需设置自己的服务器......
【问题讨论】:
-
可能 - 这个问题在 Jquery 中,但这是纯 javascript,那里的答案也没有给我一个解决方案
标签: javascript cors jsonp