XMLHttpRequest मॉड्यूल परिभाषित / नहीं मिला


96

यह मेरा कोड है:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.open("GET", "//URL")
xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey");
xhr.send();

मुझे त्रुटि मिल रही है:

Cannot find module 'xmlhttprequest'

जब मैं पहली पंक्ति को हटाता हूं, तो मुझे यह मिल रहा है:

XMLHttpRequest is not defined

मैंने सभी जगह खोज की है और लोगों ने यहां और वहां Node.js के साथ एक समस्या का उल्लेख किया है, लेकिन मेरी नोड की स्थापना सही थी इसलिए मुझे यकीन नहीं है कि मुद्दा क्या है।

जवाबों:


157

XMLHttpRequest वेब ब्राउज़र में एक अंतर्निहित वस्तु है

इसे नोड के साथ वितरित नहीं किया गया है; आपको इसे अलग से स्थापित करना होगा ,

  1. इसे npm के साथ स्थापित करें,

    npm install xmlhttprequest
    
  2. अब आप requireइसे अपने कोड में कर सकते हैं ।

    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    

उस ने कहा, HTTP मॉड्यूल नोड से HTTP अनुरोध बनाने के लिए अंतर्निहित टूल है।

Axios HTTP अनुरोध करने के लिए एक पुस्तकालय है जो नोड और ब्राउज़रों के लिए उपलब्ध है जो इन दिनों बहुत लोकप्रिय है।


2
'xmlhttprequest' ने मेरे लिए काम नहीं किया। मुझे अपना स्क्रिप्ट काम करने के लिए नीचे से पोस्ट से 'xhr2' का उपयोग करना था। स्क्रिप्ट नवीनतम Google Chrome के साथ संगत है - ArrayBuffer के रूप में प्रतिक्रिया लोड करता है: "xhr.responseType = 'arraybuffer';"
JerzySBG

20

चूंकि xmlhttprequest मॉड्यूल का अंतिम अद्यतन लगभग 2 साल पहले था , कुछ मामलों में यह अपेक्षा के अनुरूप काम नहीं करता है।

तो इसके बजाय, आप xhr2 मॉड्यूल का उपयोग कर सकते हैं । दूसरे शब्दों में:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();

हो जाता है:

var XMLHttpRequest = require('xhr2');
var xhr = new XMLHttpRequest();

लेकिन ... बेशक, एक्सिस जैसे अधिक लोकप्रिय मॉड्यूल हैं , क्योंकि-उदाहरण के लिए- वादों का उपयोग करता है:

// Make a request for a user with a given ID
axios.get('/user?ID=12345').then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

3

साथ xhr2 पुस्तकालय आप अधिलेखित विश्व स्तर पर कर सकते हैं XMLHttpRequestअपने जे एस कोड से। यह आपको नोड में बाहरी पुस्तकालयों का उपयोग करने की अनुमति देता है, जिनका उद्देश्य ब्राउज़रों से चलाया जाना था / मान लें कि वे एक ब्राउज़र में चलाए जा रहे हैं।

global.XMLHttpRequest = require('xhr2');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.