javascript - 使用 AJAX 和跨站点脚本读取 header

标签 javascript ajax http scripting cross-domain

帮助我更好地理解 AJAX 和跨站点脚本。编写 AJAX 相当简单。如果我想异步读取网站的 HTTP header ,我会这样做:

var req = new XMLHttpRequest();
req.open('HEAD', 'http://www.stackoverflow.com/', true);
req.onreadystatechange = function (aEvt) {
  if (req.readyState == 4) {
     if(req.status == 200)
      alert(req.responseText);
     else
      alert("Error loading page");
  }
};
req.send(null);

但是,当我使用记事本将其复制并粘贴到一个简单的 HTML 页面并尝试在本地运行它时,请求状态似乎没有返回 200。我假设这是由于跨站点脚本造成的。我该如何解决这个问题?

最佳答案

您是对的,除非您使用跨源资源共享(CORS, http://www.w3.org/TR/cors/ ),否则不允许跨域发出请求。 CORS 有客户端和服务器端组件。在客户端,该请求看起来与常规 XmlHttpRequest 非常相似,只是您还可以配置一些其他属性和处理程序。在服务器上,响应需要发出一些特殊的 http header 。本文详细介绍了 CORS 在客户端和服务器上的工作原理:http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

关于javascript - 使用 AJAX 和跨站点脚本读取 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5533207/

相关文章:

node.js - 为什么要发送 API 状态码?

security - 使用 content-disposition HTTP header 有哪些安全注意事项?

javascript - 将具有父/子关系的对象数组转换为嵌套对象数组

javascript - 检查 HTML 输入元素是否为空或没有用户输入的值

javascript - 如果选择了另一个输入字段,则禁用该输入字段?

java - 如何使用 java 应用程序发出 Elastic search url 请求?

javascript - 背景图像悬停类适用于 Firefox 但不适用于 Chrome/Safari

javascript - 如何使Modal的页眉和页脚固定,同时允许Modal内容单独滚动?

javascript - 未收到来自 Express 服务器的 GET 响应

javascript - 在 ASP.NET MVC 中将 HTML 表单数据从 View 传递到 Controller