Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 具有访问控制Allow Origin regexp值的ajax CORS问题_Json_Ajax_Regex_Cors_Cross Domain - Fatal编程技术网

Json 具有访问控制Allow Origin regexp值的ajax CORS问题

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 我不明白

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
我不明白“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}]