旧系统的 CORS 问题 - 没有“访问控制允许源”标头
CORS Issue with Legacy System - No 'Access-Control-Allow-Origin' header
--Ajax 方法调用以获取 HTML 格式的响应
function send_with_ajax(brand) {
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
httpRequest.open("GET", "https://XXXX--LEGACY SYSTEM--XXXX", true);
httpRequest.setRequestHeader( 'Access-Control-Allow-Origin', 'https://XXXX--LEGACY SYSTEM's IP Address--XXXX/');
httpRequest.send(null);
}
function alertContents(httpRequest) {
alert(httpRequest.readyState);
if (httpRequest.readyState == 4) {
// everything is good, the response is received
if ((httpRequest.status == 200) || (httpRequest.status == 0)) {
//Get the httpRequest.responseText
} else {
//Error with the response or Failed to load the response;
}
}
}
嗨,在上面的 JS 代码中,我创建了一个 activeX 对象来攻击遗留系统(这意味着端点 Java 中不存在与 CORS 相关的 API(。遵循相同的操作,我希望收到 HTML 格式类型的响应。这在IE(HTML代码类型(中工作正常,但是当使用Chrome(移植到HTML5代码类型(尝试相同时,我最终遇到了CORS问题。还行。。。它发生了,我试图在这里设置标题以解决它,但它也是徒劳的。有没有办法解决这个问题。请注意,我正在尝试与端点 java 组件无法进行任何修改的遗留系统进行交互。请帮助!!
您不会在请求中设置Access-Control-Allow-Origin
,而是在响应中设置它(以及其他几个必需的标头(。服务器是决定是否允许跨源请求的地方(然后浏览器实现的决定(。
我正在尝试与端点 Java 组件无法进行任何修改的遗留系统进行交互
然后,您无法使用来自其他源的 ajax 直接查询它。相反,您需要某种代理,例如在服务器(或另一台服务器上(上运行的第二个进程,您可以查询该进程,进而查询您实际想要与之通信的进程。这是有效的,因为SOP适用于来自浏览器的请求,但非浏览器可以根据需要执行跨源请求。
有几个"CORS 代理"项目(这对它们来说是一个合理的搜索词(,既可以在服务器上运行,也可以像 crossorigin.me 一样直接使用(只是一个示例,不是认可;不知道它是否有任何好处(。如果您使用服务,自然必须信任它们,因为所有数据(双向(都流经其服务器......
克服跨源限制的一种方法是使用 yql yahoo 控制台。您可以在具有不同域的网站之间传输数据(根据您的情况也可以使用 html(。你可以在这里查看。在左侧菜单中,转到data->html并进行查询,例如select * from html where url="http://your.different.domain.com"
然后只需使用雅虎提供的网址即可,而不会出现限制问题
- Javascript 受客户端和访问控制允许源的限制
- Azure Blob 存储 请求的资源错误中不存在访问控制允许源标头
- Socket.io 请求的资源上不存在“访问控制允许源”标头.因此,不允许访问源“http://localhost”
- Android 4.1 上的访问控制允许源错误
- 跨源资源错误:请求的资源上不存在“访问控制允许源”标头
- 访问控制允许源错误
- 意外的访问控制允许源错误
- CORS 标头“访问控制允许源”丢失,但它存在于标头中
- 访问控制允许源不允许 AJAX 源空
- 交叉请求时出错:“访问控制允许源不允许源”
- 将所有域添加到 CORS(访问控制允许源:*)的安全隐患
- Foursquare 返回“无访问控制允许源”标头显示错误
- 是来自浏览器或 XmlHttpRequest 的“没有'访问控制-允许源'标头”错误消息
- 旧系统的 CORS 问题 - 没有“访问控制允许源”标头
- AJAX 请求收到“请求的资源上不存在'访问控制-允许源'标头”错误
- 执行预检请求时是否需要访问控制允许源 CORS 标头
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- 为什么如果此 API 给出“无访问控制允许源标头”,我可以通过地址栏或 http://www.hurl.it 访问它
- 在某些情况下没有“访问控制-允许源”标头错误,但在其他情况下则没有
- 无法在使用 CORS 和 Mandrill 的 Node Express 中找出“没有'访问控制-允许源'