我正在尝试为所有子域,端口和协议启用CORS.
例如,我希望能够从http://sub.mywebsite.com:8080/运行XHR请求到https://www.mywebsite.com/*
通常情况下,我想启用匹配(并限于)的来源请求:
//*.mywebsite.com:*/*
我想为跨域访问头配置apache.我已经尝试了多个组合,如论坛上的线程数量建议.但它不适合我.
方式,我试过:
1)在不同的行上指定域,如下所示Header set:
Header set Access-Control-Allow-Origin "example1.com"
Header set Access-Control-Allow-Origin "example2.com"
Header set Access-Control-Allow-Origin: "example3.com"
Run Code Online (Sandbox Code Playgroud)
通过这种设置,它只选择最后一个并忽略其余部分.
2)在不同的行上指定域,如下所示Header add:
Header add Access-Control-Allow-Origin "example1.com"
Header add Access-Control-Allow-Origin "example2.com"
Header add Access-Control-Allow-Origin: "example3.com"
Run Code Online (Sandbox Code Playgroud)
有了这个,它在标题中显示了所有三个域,但是在Firefox上没有获取字体.
3.)尝试使用SetEnvIf,但它再次无效:
SetEnvIf Origin "http(s)?://(www\.)?(mydomain.com|mydomain2.com)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Run Code Online (Sandbox Code Playgroud)
最后使用"*",但我不想使用它.
请帮忙.
当我们需要调用Ajax请求时,我们会:
if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
else
{
var versions = ["Microsoft.XmlHttp",
"MSXML2.XmlHttp",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.5.0"
];
Run Code Online (Sandbox Code Playgroud)
我已经知道,使用XMLHttpRequest-2,我们可以做一个跨源请求和该ORIGIN头被添加.
题:
这个标题何时添加?
我的意思是:大胆的线是什么意思?
跨源HTTP请求具有Origin头.此标头为服务器提供请求的来源.此标头受浏览器保护,无法从应用程序代码更改.本质上,它是在Cross Document Messaging中使用的消息事件中找到的origin属性的网络等价物.origin标头与旧的referer [sic]标头不同,因为referer是包含路径的完整URL.由于路径可能包含敏感信息,因此有时不会通过尝试保护用户隐私的浏览器发送引用.但是,浏览器将始终在必要时发送所需的Origin标头.