javascript - 使用javascript设置响应头

标签 javascript response-headers

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

我研究了一下,发现响应 header 必须设置为 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>

最佳答案

I researched a bit and found out that response headers have to be set to Access-Control-Allow-Origin: *

How can I do that using pure javascript? No jquery or any other library.

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

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

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

  • 服务器用适当的 header 回复浏览器是否允许访问。

  • 浏览器发送实际请求。

  • 服务器响应它(再次包括相关的 header )。

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

详见 the Cross-Origin Resource Sharing specification .

关于javascript - 使用javascript设置响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17989951/

相关文章:

javascript - 异步比延迟更好吗?

http - Cache-Control header 上的 max-age、no-Cache、must-revalidate,哪个优先?

Java Servlet 3.0 规范建议公开 X-Powered-by。这不是安全不良做法吗?

jquery - 为什么 CORS AJAX 响应的响应 header 为空?

google-app-engine - 是否可以从谷歌应用引擎响应 header 中删除 "Google Frontend"?

javascript - 如何在javascript中序列化 map ?

javascript - 如何在 Deno 中将 arrayBuffer 转换为 Uint8Array?

javascript - 为什么我的 HTML5 视频控制按钮不能与 Javascript 配合使用?

javascript - 使用 Firebase 和 Firestore 建立状态,部署函数 : "seconds is not a valid integer" 时出错

asp.net-core - HttpResponse 不包含 Dot Net Core 的 AddHeader 的定义