帮助我更好地理解 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/