繁体   English   中英

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

[英]Chrome extension AJAX request without Origin header

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

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
..

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

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

{
    ...
    "permissions": [
        "*://example.com/*"
    ]
}

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

原始标题由浏览器自动添加,不能由用户控制。 它是一个Web主体,用于确定URI中内容的来源。 CORS还使用此标头来确定是否可以对此跨域请求进行处理或拒绝。

始终在跨源请求中添加Origin头,某些同源请求也可能包含它。 例如,Chrome和Safari会在同源POST / PUT / DELETE请求中包含原始标头,这取决于浏览器的实现。

不幸的是,我认为没有办法删除这个标题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM