Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Javascript 为什么即使url是正确的,我也会收到请求staus 400_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 为什么即使url是正确的,我也会收到请求staus 400

Javascript 为什么即使url是正确的,我也会收到请求staus 400,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我有一个chrome扩展,它调用一个网站,然后从中提取一些数据。它一直运行得很好,但突然我得到了400的响应状态,代码如下: main.js: var request = new XMLHttpRequest; request.open("GET", "https://www.mydomain.de/mypage.hml", true); request.addEventListener('load', function (event) { if (request.statu

我有一个chrome扩展,它调用一个网站,然后从中提取一些数据。它一直运行得很好,但突然我得到了400的响应状态,代码如下:

main.js:

  var request = new XMLHttpRequest;

 request.open("GET", "https://www.mydomain.de/mypage.hml", true);
 request.addEventListener('load', function (event) {
     if (request.status == 200) {

        giftUrl = extractData(request.response);
    }
    else
        console.log("request state " + request.status);
});

request.send(null);
当我将url复制到我的浏览器中时,页面将毫无问题地显示出来。如果浏览器可以显示url,状态为400的原因可能是什么

我最重要的:

"content_scripts": [
{
  "matches": [
    "http://*.mydomain.de/*",
    "https://*.mydomain.de/*"
  ],
  "js": [ "MyScript.js" ],
  "run_at": "document_end"
}
],
 "background": {
  "scripts": [ "jQuery.js", "main.js" ],
  "persistent": false
},
"permissions": [
  "https://*.mydomain.de/",
  "alarms",
  "cookies",
  "tabs",
  "unlimitedStorage",
  "http://*/*",
  "https://*/*"
]

您需要请求跨源权限

通过将主机或主机匹配模式(或两者)添加到清单文件的权限部分,扩展可以请求访问其源之外的远程服务器


如果这是在内容脚本中,现代Chrome不允许获取跨源URL,请参阅了解解决方法。否则,当站点的服务器检测到请求是由扩展发出的时,它可能会这样做,但我不能确定是否会看到请求的所有实际发送的标题。因为我的扩展只有在您访问www.mydomain.de页面时才起作用,而调用的url是request.open(“get”,“”,true);我不认为它是跨源的,是吗?Ì可以加上它在后台脚本中如果服务器上检测到请求来自扩展,我能做些什么使它看起来像来自浏览器吗?可能是一些标题内容?将您的请求的标题与devtools中某个本地站点的请求进行比较,看看是否有任何差异。不幸的是,它没有改变某些内容
{
  "name": "My extension",
  ...
  "permissions": [
    "https://www.google.com/"
  ],
  ...
}