javascript - XMLHttpRequest: "chrome-extension://"前置到 URL 获取错误: net::ERR_FILE_NOT_FOUND

标签 javascript google-chrome google-chrome-extension

当我使用 jQuery ajaxXMLHttpRequestbackground.js 中发送请求时,出现错误:

background.js:51 GET chrome-extension://kameliefngmopmegikbnifbclhkihkjm/http%3A%2F%2Fhtcjy.com%2Fmobile%2Fshop%2Fm%2Fg%2Fgoods-1.do%3F net::ERR_FILE_NOT_FOUND

为什么要在我的请求网址前添加extension://kameliefngmopmegikbnifbclhkihkjm/? 对于该错误我该怎么办。

这是我的代码:

background.js

chrome.webRequest.onBeforeRequest.addListener(function(details) {
    chrome.tabs.query({active:true},function(tab){
        var method = "get";//details.method;
        var actualUrl = "http%3A%2F%2Fhtcjy.com%2Fmobile%2Fshop%2Fm%2Fg%2Fgoods-1.do%3F"; //details.url;
        sendCrossOrigin(actualUrl, method, function(responseText){
            console.log(responseText);
        })
    });
}, {urls: ["*://*/mock/requestOnServer.do?*"]}, ["blocking"] );

function sendCrossOrigin(url, type, success){
    var xhr = new XMLHttpRequest();
    xhr.open(type, url, true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            // innerText does not let the attacker inject HTML elements.
            //documemt.getElementById("resp").innerText = xhr.responseText;
            //var resp = JSON.parse(xhr.responseText);
            success(xhr.responseText);
        }
    }
    xhr.send();
}

list .json

{
  "name": "RAP",
  "version": "0.1",
  "manifest_version": 2,
  "description": "RAP Chrome Plugin for Cross-domain",
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "RAP",
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs",
    "*://htcjy.com/*",
    "*://*/*",
    "webRequest",
    "webRequestBlocking"
  ],
  "background": {
    "scripts": ["jquery-2.0.0.min.js", "background.js"] 
  },
  "content_scripts":[{
    "matches":["http://*/*"],
    "js":["jquery-2.0.0.min.js", "content_script.js"]
  }]
}

最佳答案

我已经解决了。 这是因为我发布的网址类似于 http%3A%2F%2Fhtcjy.com%2Fmobile%2Fshop%2Fm%2Fg%2Fgoods-1.do%3F

但是我写

"permissions": [
    "tabs",
    "*://htcjy.com/*",
    "*://*/*",
    "webRequest",
    "webRequestBlocking"
  ]

它无法匹配url,所以我调用函数decodeURIComponent来转换为urlhttp://htcjy.com/mobile/shop/m/g/goods-1。做什么?

我真是太蠢了

关于javascript - XMLHttpRequest: "chrome-extension://"前置到 URL 获取错误: net::ERR_FILE_NOT_FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41032189/

相关文章:

javascript - Chrome 扩展程序粘贴文本模板

javascript - CRX 文件未下载

javascript - 验证 Redux 表单中的 URL

javascript - 如何在 JavaScript 中只为 Chrome 增加 margin-right 值?

google-chrome - 如何在 docker 中 headless 运行谷歌浏览器?

javascript - 在我的内容脚本中调用 JS 库 - WebExtension

javascript - 输入内容时实时搜索 div 不显示

javascript - 如何将数组附加到现有的 json javascript?

javascript - 如果在索引路由 React JS 上则渲染内容

java - 下载文件时如何为不同的浏览器正确设置中文文件名