Json 具有访问控制Allow Origin regexp值的ajax CORS问题
Hy 当我向另一个域请求ajax时,出现以下错误:Json 具有访问控制Allow Origin regexp值的ajax CORS问题,json,ajax,regex,cors,cross-domain,Json,Ajax,Regex,Cors,Cross Domain,Hy 当我向另一个域请求ajax时,出现以下错误: XMLHttpRequest cannot load http://rec.something.fr/services/data. The 'Access-Control-Allow-Origin' header contains the invalid value '*.something.fr'. Origin 'http://local.something.fr' is therefore not allowed access 我不明白
XMLHttpRequest cannot load http://rec.something.fr/services/data.
The 'Access-Control-Allow-Origin' header contains the invalid value '*.something.fr'.
Origin 'http://local.something.fr' is therefore not allowed access
我不明白“Access Control Allow Origin”头是否可以使用regexp表达式。一些消息来源说它可以,另一些消息来源说它不能
最大的问题是,这是另一个社会谁是负责这个问题。在我给他们打电话之前,我想确定问题出在他们的服务器上,而不是我的代码中缺少的东西
我的代码:(Origin=)
被调用服务的内容是Json:
[{data:myData}]
如果我使用CORS chrome插件,谁能捕获响应并替换
访问控制允许源代码:*.something.fr
通过
访问控制允许源代码:*,它将工作
我不能使用JSONP,因为这需要更新rec.something.fr服务器
有什么想法吗?
访问控制允许源代码
值不能是正则表达式或任何其他类型的模式。它们必须完全匹配请求的来源
标题,或者是空
,或者是单个文本*
有关问题,请参见和第一条评论
因此,你没有办法解决这个问题。http://rec.something.fr
维护人员只需修复他们正在发送的损坏的访问控制允许源文件
标题
我不明白“Access Control Allow Origin”标题是否可以使用
或者不是regexp表达式。有消息说可以,也有消息说可以
不能
绝对不能。Access Control Allow Origin
有效语法的当前权威源是其在以下位置的ABNF产品:
Access Control Allow Origin=Origin或null/“*”
有关良好的二次源,请参见,其说明如下:
标头的值可以回送源站请求标头,也可以是“*”
,以允许来自任何源站的请求
因此,如果您想尝试帮助http://rec.something.fr
维护人员更正其服务器配置,您可以建议他们更改服务器逻辑中的代码,以执行以下操作:
- 对于来自与
匹配的源站的请求,使用与请求*.something.fr
头的值完全相同的值发送源站
访问控制允许源站
- 否则,对于来自与
不匹配的源站的请求,则根本不发回*.something.fr
访问控制允许源站
非常感谢,您知道我如何允许两个不同的源代码(and)而不使用*?允许两个不同的源代码
local.something.fr
和local2.something.fr
,类似于(伪代码)if(Origin==“local.something.fr”或Origin==“local2.something.fr”){header“访问控制允许源代码”=原点}
。真正需要的代码取决于实际的web服务器软件是什么,以及它为有条件地设置头提供了什么机制。
[{data:myData}]