【发布时间】:2014-01-18 19:40:16
【问题描述】:
我正在尝试在 ajax 请求标头中手动设置来源。在我的 background.js 中,我有这个
var ajaxResponse;
$.ajax({
type:'POST',
url:'www.somewebsite.com/login/login.asp',
headers:{
'origin': 'https://www.somewebsite.com'
},
success: function(response){
ajaxResponse = response;
}
});
如您所见,原点已更改。但是当这个 Chrome 扩展被执行时,原点被覆盖到 chrome-extension://iphajdjhoofhlpldiilkujgommcolacc 并且控制台给出错误 'Refused to set unsafe header "origin"'
我已关注 Chrome API (http://developer.chrome.com/extensions/xhr.html),并已将权限设置如下
"permissions": [
"https://www.somewebsite.com/*"
],
有谁知道如何在标题中正确设置原点?谢谢!
【问题讨论】:
-
你不能。你为什么要改变原点?
-
@abraham,我们应该可以。在 Chrome 扩展 API 中,它说“常规网页可以使用 XMLHttpRequest 对象从远程服务器发送和接收数据,但它们受到同源策略的限制。扩展并没有那么有限。只要它首先请求跨域权限,扩展程序就可以与其源之外的远程服务器通信。 (developer.chrome.com/extensions/xhr.html)
-
扩展不受跨域限制是正确的,但您不能通过更改原点来做到这一点。您只需发出 XHR 请求,Chrome 不会阻止它。
标签: javascript ajax google-chrome-extension cross-domain same-origin-policy