Chromium 上的 HEAD XMLHttpRequest
-
25-09-2019 - |
题
我尝试使用 Chromium 中的 XMLHttpRequest 获取 HEAD 响应,以检索压缩 url 的位置 URL,但失败:
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function() { if (ajax.readyState == 4) alert(ajax.getResponseHeader("Location")) };
ajax.open('HEAD', "http://bit.ly/4Agih5", false);
ajax.send();
// Refused to get unsafe header "Location"
// Error: NETWORK_ERR: XMLHttpRequest Exception 101
解决方案
正如 Mohamed 所指出的,您必须在托管页面的同一站点上创建代理服务,因为这是跨域请求。
这在所有浏览器中都应该失败,除非您在浏览器中明确允许跨域请求。如果 bit.ly 通过以下方式支持跨域请求 W3C 规范 对于 Access-Control-Allow-Origin 那么您的代码就可以工作。
其他提示
您不能做跨域XHR。使用Web编程语言如JSP / Python的/ PHP /红宝石/等。
不隶属于 StackOverflow