没有Origin标头的Chrome扩展AJAX请求

f.a*_*ian 2 javascript ajax google-chrome google-chrome-extension

这是使用jQuery从Chrome扩展程序发出的AJAX请求(print_r()在php中)

Array
(
    [HTTP_HOST] => 127.0.0.1
    [HTTP_CONNECTION] => keep-alive
    [CONTENT_LENGTH] => 0
    [HTTP_ACCEPT] => */*
    [HTTP_ORIGIN] => chrome-extension://apdckddecfflophongckfbabbjhnjbph
    [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.123 Safari/537.36
..
Run Code Online (Sandbox Code Playgroud)

如何Origin从AJAX请求离开浏览器之前删除标头?

Rob*_*b W 6

只需将网站添加到清单文件的权限部分(请参阅有效格式的匹配模式).然后,请求将被视为从与网站相同的来源发送,并且不会添加"Origin"请求标头.

{
    ...
    "permissions": [
        "*://example.com/*"
    ]
}
Run Code Online (Sandbox Code Playgroud)

(如果没有此权限,Chrome仍会尝试使用CORS获取资源,导致添加"Origin"标头.只有当服务器回复带有Access-Control-Allow-Origin通配符(*或与请求者的来源匹配)的标头时,此类请求才会成功.)