8

में क्रॉस-उत्पत्ति XMLHttpRequest क्रोम एक्सटेंशन एपीआई पार मूल XMLHttpRequest ऑब्जेक्ट का उपयोग करके कॉल के अनुसार अनुमति दी जानी चाहिए अगर अनुमति सेट कर रहे हैं:क्रोम एक्सटेंशन

एक विस्तार है, जब तक इसके मूल स्थान के बाहर दूरस्थ सर्वर से बात कर सकते क्योंकि यह पहले क्रॉस-मूल अनुमतियों का अनुरोध करता है।

मैं बारीकी से the tutorial अनुसरण कर रही हूं लेकिन नीचे कोड मुझे एक त्रुटि संदेश दे रहा है:

XMLHttpRequest http://www.google.com/search?hl=en&q=ajax लोड नहीं कर सकता। उत्पत्ति क्रोम-एक्सटेंशन: // bmehmboknpnjgjbmiaoidkkjfcgiimbo को एक्सेस-कंट्रोल-अनुमति-उत्पत्ति द्वारा अनुमति नहीं है।

मैंने न केवल google.com के अनुरोध की अनुमति दी है, लेकिन किसी भी वेबसाइट से अनुरोध किया है लेकिन अभी भी इसे प्राप्त नहीं कर सकता है। क्या कोई मदद कर सकता है?

मेरे मैनिफ़ेस्ट फ़ाइल:

{ 
    "name": "The popup", 
    "version": "0.1", 
    "popup": "popup.html", 
    "permissions": [ 
    "http://*/*", 
    "https://*/*", 
    "https://www.google.com/*", 
    "http://www.google.com/*" 
    ], 
    "browser_action": { 
    "default_icon": "clock-19.png", 
    "default_title": "This is title", 
    "default_popup": "popup.html" 
    } 
} 

वास्तविक कॉल:

function sendRequest() { 
    document.write("Sending request"); 
    var req = new XMLHttpRequest(); 
     req.open("GET", "http://www.google.com/search?hl=en&q=ajax", true); 
     req.onreadystatechange = function() { 
      if (req.readyState == 4) { 
      if (req.status == 200) { 
       alert(req.responseText); 
       document.write("OK"); 
      } 
      } 
     }; 
     req.send(); 
} 
+0

एक समान समस्या थी। मेरा परिचय manifest.json में क्रॉस-डोमेन अनुमतियों को सेट न करने के साथ करना था। मैं दूसरों को ढूंढने के लिए http://developer.chrome.com/extensions/xhr.html जोड़ दूंगा। – Jono

उत्तर

24

दो बातें; आपको यह सुनिश्चित करने की ज़रूरत है कि आप एक पैकेज किए गए ऐप/एक्सटेंशन बना रहे हैं और मेजबान नहीं हैं। क्रॉस मूल अनुरोध होस्ट किए गए ऐप्स के साथ काम नहीं करेगा। मान लीजिए कि आप उस भाग को पिन कर चुके हैं, तो आप निम्नलिखित को अपनी अनुमतियों में डालने का प्रयास कर सकते हैं: http://*/। मेरे पास केवल एक पैकेज किए गए ऐप्स में से एक है, और यह किसी भी समस्या के बिना मूल सामग्री को पार करता है।

+3

बिंगो! मैं जिस ट्यूटोरियल का अनुसरण कर रहा था, इस तथ्य के बारे में एक शब्द का उल्लेख नहीं करता है कि इसे क्रॉस-उत्पत्ति xmlhttprequest सही तरीके से काम करने के लिए पैक किया जाना है। मुझे लगता है कि यह ऐसा कुछ है जो मुझे पैदा होने के बाद जाना चाहिए था। धन्यवाद! – matcheek

+1

हां, मैं इसे समझने के लिए एक ही परीक्षण और त्रुटि के माध्यम से चला गया। मेजबान और पैक किए गए ऐप्स के बीच अंतर को दर्शाने के लिए दस्तावेज़ों को वास्तव में अपडेट किया जाना चाहिए, और संभावित रूप से यह स्पष्ट करना है कि कोई एक्सटेंशन ऐप आदि जैसा ही है। –

+4

क्या पैक किए गए और होस्ट किए गए एक्सटेंशन हैं? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^