簡體   English   中英

Chrome擴展程序的跨域XMLHttpRequest返回狀態0

[英]Cross-Origin XMLHttpRequest from Chrome Extension Returning Status 0

我正在編寫一個Chrome擴展程序,該擴展程序需要從另一個站點加載一些數據。 從我的研究中,我相信我應該為此使用XMLHttpRequest,但是它為我嘗試的每個站點都返回responseText =“”和status = 0。 我輸入到javascript中的URL很好; 我努力了

http://www.google.com

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22MSFT%22)&env=store://datatables.org/alltableswithkeys

我在做愚昧無知的事情嗎? 我相信清單中有權限,但是我現在所擁有的應該允許這兩個站點。 我在JavaScript控制台中沒有看到任何錯誤。

清單:

{
  "manifest_version": 2,

  "name": "nnnn",
  "description": "nnnn",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "storage",
    "http://*.query.yahooapis.com/*",
    "http://*/*",
    "https://*/*"    
  ]
}

javascript函數:

function getSite(queryUrl) {
  var request = new XMLHttpRequest();
  request.open("GET", queryUrl, true);
  console.log(queryUrl);
  request.onreadystatechange = function () {
    console.log(request);
   if (request.readyState == 4) {
      if (request.status == 200) {
        console.log(request.responseText);
      } else {
        console.log('Unable to resolve address');
      }
    }
  };
  request.send(null);
}

編輯: http : //developer.chrome.com/extensions/xhr.html這幾乎是我一直遵循的指導原則,但顯然有些事情困擾了我。

我不認為這是與許可相關的問題。 如果是這樣,則在控制台中會出現一條錯誤消息,提示權限問題。 我認為您的XMLHttpRequest出了點問題。 確保傳遞給函數的queryUrl是正確的。

您可以使用Fiddler來檢查您的請求出了什么問題。

我做了一些無知的事情,並且提交了表單,這導致頁面刷新並在完成時丟棄了先前的XMLHttpRequest

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM