5

我在从应用程序中的 URL 收集 json 值时遇到了麻烦。当我尝试获取它们时,控制台中会显示一个错误日志,说明 access-control-allow-origin 不允许来源。

我研究了一下,发现响应头必须设置为 Access-Control-Allow-Origin:*

我怎样才能使用纯 javascript 做到这一点?没有 jquery 或任何其他库。

这是我当前的代码:

<script type="text/javascript">
    var xmlHttp = null;
    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", "http://example.com/id=69", false );
    xmlHttp.send( null );
    console.log("JSON values from URL: ");
    console.log(xmlHttp.responseText);
</script>
4

2 回答 2

6

我研究了一下,发现响应头必须设置为 Access-Control-Allow-Origin:*

我怎样才能使用纯 javascript 做到这一点?没有 jquery 或任何其他库。

你不能,除非你的服务器正在运行 JavaScript(NodeJS 等)。

服务器必须允许从文档的来源访问资源。它的工作方式是:

  • 浏览器请求访问资源的权限(这称为“预检”请求),告诉服务器它想要访问什么资源,等等。

  • 服务器以适当的标题回复,告诉浏览器是否允许访问。

  • 浏览器发送实际请求。

  • 服务器对其进行响应(再次包括相关的标头)。

我相信在某些情况下不需要进行预飞行。所有这些都由对象为您处理XMLHttpRequest

跨域资源共享规范中的详细信息。

于 2013-08-01T09:21:38.780 回答
3

您不能在客户端执行此操作,您的服务器必须发送这些标头。

于 2013-08-01T09:21:14.163 回答