为什么我可以得到请求staus 400(即使URL还可以)

时间:2019-09-09 16:46:42

标签: 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.status == 200) {

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

request.send(null);

当我将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://*/*"
]

1 个答案:

答案 0 :(得分:0)

您需要请求跨源许可 https://developer.chrome.com/extensions/xhr

  

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

{
  "name": "My extension",
  ...
  "permissions": [
    "https://www.google.com/"
  ],
  ...
}