我被要求创建一个可以从其他站点请求的反馈页面。
我正在使用渐进增强来显示页面。
当我能够使用 jquery 对话框时的 ajax 请求如下
jQuery.support.cors = true;
$.ajax({
type: 'get',
crossDomain: true,
url: this.href
}).done(function (data) {
$dialogFeedback.html(data);
}).error(function (jqXHR, textStatus, errorThrown) {
$dialogFeedback.html(jqXHR.responseText || textStatus);
});
在测试期间,我注意到 Internet Explorer 似乎允许跨域调用,即使响应 Access-Control-Allow-Origin HttpHeader未设置为客户端域。我注意到 Http origin 标头始终为空。
Chrome 和 Firefox 尊重它。Http 源头不为空。
进行调用的客户端站点与反馈站点位于不同的端口上,但两者都是本地主机。我读过一个不同的端口号被认为是跨域的。
目前,我发现自己必须从 Referrer Http 标头中检索调用者/客户端域,如果我们不知道该域,则返回 404。
真的,我希望依靠 Access-Control-Allow-Origin HttpHeader!
. . . 所以我的问题是为什么会这样?它实际上是预期/可能的吗?什么是最好的解决方案?
谢谢