এইচটিটিপি জাভাস্ক্রিপ্টে অনুরোধ পাবেন?


807

আমার জাভাস্ক্রিপ্টে একটি HTTP জিইটি অনুরোধ করা দরকার । এটি করার সর্বোত্তম উপায় কী?

আমাকে একটি ম্যাক ওএস এক্স ড্যাশকোড উইজেটে এটি করা দরকার।


10
নোট করুন যে এটি একই উত্স নীতি সাপেক্ষে। en.wikipedia.org/wiki/Same_origin_policy
ripper234

উত্তর:


1206

ব্রাউজারগুলি (এবং ড্যাশকোড) একটি এক্সএমএলএইচটিপিআরকোয়েস্ট অবজেক্ট সরবরাহ করে যা জাভাস্ক্রিপ্ট থেকে এইচটিটিপি অনুরোধ করতে ব্যবহৃত হতে পারে:

function httpGet(theUrl)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
    xmlHttp.send( null );
    return xmlHttp.responseText;
}

যাইহোক, সিঙ্ক্রোনাস অনুরোধগুলি নিরুৎসাহিত করা হয়েছে এবং এর লাইনগুলিতে একটি সতর্কতা উত্পন্ন করবে:

দ্রষ্টব্য: গেকো ৩০.০ (ফায়ারফক্স ৩০.০ / থান্ডারবার্ড ৩০.০ / সিমনকি ২.২27) দিয়ে শুরু করে, ব্যবহারকারীর অভিজ্ঞতার নেতিবাচক প্রভাবের কারণে মূল থ্রেডের সিঙ্ক্রোনাস অনুরোধগুলি প্রত্যাখ্যান করা হয়েছে

আপনার একটি অ্যাসিঙ্ক্রোনাস অনুরোধ করা উচিত এবং ইভেন্ট হ্যান্ডলারের ভিতরে প্রতিক্রিয়াটি পরিচালনা করা উচিত।

function httpGetAsync(theUrl, callback)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() { 
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
            callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous 
    xmlHttp.send(null);
}

2
ঠিক আছে, অবশ্যই জাভাস্ক্রিপ্টটি এটি তৈরি করেছে, বা কোনও জাভাস্ক্রিপ্ট লাইব্রেরি কীভাবে এটির জন্য কোনও সুবিধা পদ্ধতি প্রস্তাব করতে পারে? পার্থক্যটি হ'ল সুবিধার পদ্ধতিগুলি, ভাল, সুবিধার্থে এবং একটি পরিষ্কার, সহজ বাক্য গঠন ax
পিস্তোস

37
XML` উপসর্গটি কেন?
অ্যালিকেলজিন-কিলাকা

9
এক্সএমএল উপসর্গ কারণ এটি এজেএক্স ~ অ্যাসিঙ্ক্রোনাস জাভাস্ক্রিপ্ট এবং এক্সএমএল থেকে এক্স ব্যবহার করে । এছাড়াও, এইচটিটিপি সমর্থনকারী ব্রাউজারগুলি (যেমন অ্যাডোব রিডারের মতো ...) ভালভাবে জাভাস্ক্রিপ্ট অনেক কিছুতে থাকতে পারে এই কারণে "" যে API এবং ECMAScript বাঁধাই করা হয়েছে "এর ভাল পয়েন্ট পুনরায় এটির জন্য হ্যাটস অফ মনে রাখা ভাল জিনিস সরু কান.
হবে

7
@ অ্যালিকেলজিন-কিলাকা প্রকৃতপক্ষে উপরের সমস্ত উত্তরগুলি চিহ্ন ছাড়াই রয়েছে (লিঙ্কযুক্ত ডাব্লু 3 ডক্সকে ব্যাখ্যা করে "এই নামের প্রতিটি উপাদানই সম্ভবত বিভ্রান্তিমূলক")। সঠিক উত্তর? এর স্রেফ খারাপ নামকরণ করা হয়েছে স্ট্যাকওভারফ্লো.
com/ জিজ্ঞাসা /

2
এপিআই আনা অফার এই কাজ করতে একটি ভাল উপায়, এবং polyfilled যাবে যখন প্রয়োজন (দেখুন @ PeterGibson এর নিচে উত্তর )।
ডোমিনাস.ভবিস্কাম

189

JQuery এ :

$.get(
    "somepage.php",
    {paramOne : 1, paramX : 'abc'},
    function(data) {
       alert('page content: ' + data);
    }
);

4
নোট করুন যে পৃষ্ঠার ডোমেনের চেয়ে আলাদা কোনও ডোমেনে url অ্যাক্সেস করার সময় আইই 10 তে এটি কাজ করছে না
BornToCode

5
@ বার্নটোকোড আপনার আরও তদন্ত করতে হবে এবং সম্ভবত সেই ক্ষেত্রে jQuery ইস্যু ট্র্যাকারটির উপর একটি বাগ খোলা উচিত
ashes999

91
আমি জানি কিছু লোক খাঁটি জাভাস্ক্রিপ্ট লিখতে চায়। আমি তা পেয়েছি লোকেরা তাদের প্রকল্পগুলিতে এটি করতে আমার কোনও সমস্যা নেই। আমার "জিক্যুয়রিতে:" এর অর্থ ব্যাখ্যা করা উচিত "আমি জানি আপনি জাভাস্ক্রিপ্টে এটি কীভাবে করবেন তা জিজ্ঞাসা করেছিলেন, তবে কীভাবে সিনট্যাক্সের সংক্ষিপ্ততা দেখে এবং আপনার কৌতূহল জাগ্রত হতে পারে তা আপনাকে jQuery দিয়ে আপনি কীভাবে করবেন তা আমি আপনাকে দেখাতে চাই and আপনি এই লাইব্রেরিটি ব্যবহার করে যে স্বচ্ছতা উপভোগ করতে পারবেন, যা আপনাকে অন্যান্য অনেক সুবিধা এবং সরঞ্জামাদিও সরবরাহ করতে পারে "।
পিস্তোস

34
মূল পোস্টারটি পরে বলেছিল যে এটিও পর্যবেক্ষণ করুন: "সমস্ত উত্তরের জন্য ধন্যবাদ! আমি তাদের সাইটে আমি যে কিছু জিনিস পড়েছি তার উপর ভিত্তি করে jQuery নিয়ে গিয়েছিলাম।"
পিস্তোস

153

উপরে প্রচুর দুর্দান্ত পরামর্শ, তবে খুব বেশি পুনরায় ব্যবহারযোগ্য নয় এবং খুব সহজেই ডিওএম ননসেন্স এবং অন্যান্য ফ্লাফ দিয়ে ভরা হয় যা সহজ কোডটি আড়াল করে।

এখানে একটি জাভাস্ক্রিপ্ট ক্লাস তৈরি করা হয়েছে যা পুনরায় ব্যবহারযোগ্য এবং সহজেই ব্যবহারযোগ্য। বর্তমানে এটির জন্য কেবল একটি জিইটি পদ্ধতি রয়েছে তবে এটি আমাদের পক্ষে কার্যকর। একটি পোস্ট যোগ করা কারও দক্ষতা ট্যাক্স করা উচিত নয়।

var HttpClient = function() {
    this.get = function(aUrl, aCallback) {
        var anHttpRequest = new XMLHttpRequest();
        anHttpRequest.onreadystatechange = function() { 
            if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                aCallback(anHttpRequest.responseText);
        }

        anHttpRequest.open( "GET", aUrl, true );            
        anHttpRequest.send( null );
    }
}

এটি ব্যবহার করা যেমন সহজ:

var client = new HttpClient();
client.get('http://some/thing?with=arguments', function(response) {
    // do something with response
});

আনকড রেফারেন্স ত্রুটি, এইচটিপিপি্লিয়েন্ট সংজ্ঞায়িত করা হয়নি। আমি এটি একটি প্রথম লাইন এটি নিজেই পেয়ে যাচ্ছি।
শশীকান্ত

আপনি কিভাবে এইচটিএমএল অনক্লিক থেকে কল করবেন?
গব্লিন্স

অন্য কোনও ফাংশন তৈরি করুন যেখানে এতে ভ্যার ক্লায়েন্ট রয়েছে ... এবং কেবল ফাংশননেম () চালান; প্রত্যাবর্তন মিথ্যা; মধ্যে onClick
mail929

1
ReferenceError: XMLHttpRequest is not defined
বাগ বাগি

122

নতুন window.fetchএপিআই হ'ল একটি ক্লিনার প্রতিস্থাপন XMLHttpRequestযা ইএস 6 প্রতিশ্রুতি ব্যবহার করে। এখানে একটি দুর্দান্ত ব্যাখ্যা রয়েছে , তবে এটি ফোটে (নিবন্ধ থেকে):

fetch(url).then(function(response) {
  return response.json();
}).then(function(data) {
  console.log(data);
}).catch(function() {
  console.log("Booo");
});

ব্রাউজার সমর্থন এখন সর্বশেষতম রিলিজ (ক্রোম, ফায়ারফক্স, এজ (v14), সাফারি (v10.1), অপেরা, সাফারি আইওএস (v10.3), অ্যান্ড্রয়েডের জন্য ব্রাউজার এবং ক্রোমে কাজ করে) ভাল, তবে আইই সম্ভবত সরকারী সমর্থন পাবেন না। গিটহাবের একটি পলিফিল উপলব্ধ রয়েছে যা পুরানো ব্রাউজারগুলিকে এখনও প্রচুর পরিমাণে ব্যবহারের জন্য সুপারিশ করা হয় (সাফারি সংস্করণের সংস্করণ এবং একই সময়ের মোবাইল ব্রাউজারগুলি 2017)।

আমি অনুমান করি যে এটি jQuery বা XMLHttpRequest এর চেয়ে বেশি সুবিধাজনক কিনা বা প্রকল্পের প্রকৃতির উপর নির্ভর করে না।

এখানে অনুমানটির একটি লিঙ্ক https://fetch.spec.whatwg.org/

সম্পাদনা করুন :

ব্যবহার ES7 ASYNC / অপেক্ষা করে আছি এই কেবল (তার উপর ভিত্তি করে হয়ে এই সারকথা ):

async function fetchAsync (url) {
  let response = await fetch(url);
  let data = await response.json();
  return data;
}

9
অনুরোধে শংসাপত্রগুলি অন্তর্ভুক্ত করার জন্য আপনি এটি করতে পারেন তা উল্লেখ করে আমি কাউকে কিছুটা সময় বাঁচাতে পারি:fetch(url, { credentials:"include" })
এনসেলিক

@ বাগম্যানট 123 window.fetchকোনও এক্সএমএল পার্সার নিয়ে আসে না, তবে আপনি যদি প্রতিক্রিয়াটিকে পাঠ্য হিসাবে পরিচালনা করেন তবে আপনি প্রতিক্রিয়াটি পার্স করতে পারেন (উপরের উদাহরণের মতো জসন নয়)। উদাহরণস্বরূপ stackoverflow.com/a/37702056/66349 দেখুন
পিটার গিবসন

94

কলব্যাক ছাড়াই একটি সংস্করণ

var i = document.createElement("img");
i.src = "/your/GET/url?params=here";

2
অসাধারণ! সেশনটি বাঁচিয়ে রাখতে আমার গ্রিসমোনকি স্ক্রিপ্টের দরকার ছিল এবং এই স্নিপেটটি নিখুঁত। শুধু একটি setIntervalকল এ এটি মোড়ানো ।
কারকামানো

9
আমি কীভাবে ফলাফল পেতে পারি?
ব্যবহারকারী 4421975

@ ব্যবহারকারী 4421975 আপনি পাবেন না - অনুরোধের প্রতিক্রিয়ার অ্যাক্সেস পেতে আপনার পরিবর্তে পূর্বোক্ত XMLHttpRequest ব্যবহার করা উচিত।
জাকুব পাস্তুসুকুক

74

এটি সরাসরি জাভাস্ক্রিপ্ট দিয়ে করার কোড। তবে, যেমন পূর্বে উল্লিখিত হয়েছে, আপনি একটি জাভাস্ক্রিপ্ট লাইব্রেরি সহ আরও ভাল হতে চাই। আমার প্রিয় jQuery হয়।

নীচের ক্ষেত্রে, একটি এএসপিএক্স পৃষ্ঠা (যা একজন দরিদ্র ব্যক্তির আরইএসটি পরিষেবা হিসাবে পরিবেশন করছে) একটি জাভাস্ক্রিপ্ট জেএসএন বস্তুটি ফিরিয়ে আনার জন্য কল করা হচ্ছে।

var xmlHttp = null;

function GetCustomerInfo()
{
    var CustomerNumber = document.getElementById( "TextBoxCustomerNumber" ).value;
    var Url = "GetCustomerInfoAsJson.aspx?number=" + CustomerNumber;

    xmlHttp = new XMLHttpRequest(); 
    xmlHttp.onreadystatechange = ProcessRequest;
    xmlHttp.open( "GET", Url, true );
    xmlHttp.send( null );
}

function ProcessRequest() 
{
    if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 ) 
    {
        if ( xmlHttp.responseText == "Not found" ) 
        {
            document.getElementById( "TextBoxCustomerName"    ).value = "Not found";
            document.getElementById( "TextBoxCustomerAddress" ).value = "";
        }
        else
        {
            var info = eval ( "(" + xmlHttp.responseText + ")" );

            // No parsing necessary with JSON!        
            document.getElementById( "TextBoxCustomerName"    ).value = info.jsonData[ 0 ].cmname;
            document.getElementById( "TextBoxCustomerAddress" ).value = info.jsonData[ 0 ].cmaddr1;
        }                    
    }
}

33
যেহেতু এই উত্তরটি গুগলিংয়ের "শীর্ষস্থানীয় অনুরোধ জাভাস্ক্রিপ্ট" এর শীর্ষ ফলাফলগুলির মধ্যে একটি, এটি উল্লেখ করার মতো যে প্রতিক্রিয়ার ডেটাগুলিতে চালানো খারাপ অভ্যাস হিসাবে বিবেচিত
ক্লার

9
@ ক্লয়ার ভাল বক্তব্য, তবে এটি খারাপ হওয়ার কারণটি প্রদান করা আরও ভাল হবে, যা আমার ধারণা সুরক্ষা। অনুশীলনগুলি কেন খারাপ তা ব্যাখ্যা করাই মানুষকে তাদের অভ্যাসটি পরিবর্তন করার সর্বোত্তম উপায়।
বাল্মীপুর

43

একটি অনুলিপি-আধুনিক সংস্করণ ( আনতে ব্যবহার করে) এবং তীর ফাংশন ) :

//Option with catch
fetch( textURL )
   .then(async r=> console.log(await r.text()))
   .catch(e=>console.error('Boo...' + e));

//No fear...
(async () =>
    console.log(
            (await (await fetch( jsonURL )).json())
            )
)();

একটি অনুলিপি-ক্লাসিক সংস্করণ:

let request = new XMLHttpRequest();
request.onreadystatechange = function () {
    if (this.readyState === 4) {
        if (this.status === 200) {
            document.body.className = 'ok';
            console.log(this.responseText);
        } else if (this.response == null && this.status === 0) {
            document.body.className = 'error offline';
            console.log("The computer appears to be offline.");
        } else {
            document.body.className = 'error';
        }
    }
};
request.open("GET", url, true);
request.send(null);


19

IE লোডিংটি দ্রুত করার জন্য ইউআরএলগুলি ক্যাশে করবে, তবে আপনি যদি বলুন যে নতুন তথ্য পাওয়ার চেষ্টা করার বিরতিতে কোনও সার্ভারে পোলিং করা হচ্ছে, আইই সেই ইউআরএলকে ক্যাশে করবে এবং সম্ভবত আপনি সর্বদা একই ডেটা সেটটি ফিরে আসবেন।

আপনি আপনার জিইটি অনুরোধটি কীভাবে শেষ করবেন না - ভ্যানিলা জাভাস্ক্রিপ্ট, প্রোটোটাইপ, জকিউয়ারি ইত্যাদি - নিশ্চিত করুন যে আপনি ক্যাচিংয়ের লড়াইয়ের জন্য কোনও ব্যবস্থা রেখেছেন to এটির বিরুদ্ধে লড়াই করার জন্য, আপনি যে URL টি মারতে চলেছেন তার শেষে একটি অনন্য টোকেন যুক্ত করুন। এটি দ্বারা করা যেতে পারে:

var sURL = '/your/url.html?' + (new Date()).getTime();

এটি ইউআরএল শেষে একটি অনন্য টাইমস্ট্যাম্প সংযোজন করবে এবং কোনও ক্যাচিং ঘটতে বাধা দেবে।


12

প্রোটোটাইপ এটিকে মৃতকে সহজ করে তোলে

new Ajax.Request( '/myurl', {
  method:  'get',
  parameters:  { 'param1': 'value1'},
  onSuccess:  function(response){
    alert(response.responseText);
  },
  onFailure:  function(){
    alert('ERROR');
  }
});

2
সমস্যাটি হ'ল ম্যাক ওএস এক্স প্রোটোটাইপ প্রি-ইনস্টলড নিয়ে আসে না। প্রতিটি উইজেটে প্রোটোটাইপ (বা jQuery) সহ যে কোনও কম্পিউটারে উইজেট চালানো দরকার সেরা সমাধান নয়।
কিমলালুনো

@ কিমলালালানো ক্লাউডফ্লেয়ার থেকে প্রোটোটাইপ সিডিএন ব্যবহার করুন
ভ্লাদিমির স্টাজিলভ

10

পুরানো ব্রাউজারগুলিকে সমর্থন করার একটি সমাধান:

function httpRequest() {
    var ajax = null,
        response = null,
        self = this;

    this.method = null;
    this.url = null;
    this.async = true;
    this.data = null;

    this.send = function() {
        ajax.open(this.method, this.url, this.asnyc);
        ajax.send(this.data);
    };

    if(window.XMLHttpRequest) {
        ajax = new XMLHttpRequest();
    }
    else if(window.ActiveXObject) {
        try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP.6.0");
        }
        catch(e) {
            try {
                ajax = new ActiveXObject("Msxml2.XMLHTTP.3.0");
            }
            catch(error) {
                self.fail("not supported");
            }
        }
    }

    if(ajax == null) {
        return false;
    }

    ajax.onreadystatechange = function() {
        if(this.readyState == 4) {
            if(this.status == 200) {
                self.success(this.responseText);
            }
            else {
                self.fail(this.status + " - " + this.statusText);
            }
        }
    };
}

কিছুটা ওভারকিল হতে পারে তবে আপনি অবশ্যই এই কোডটি সহ নিরাপদে চলে যান।

ব্যবহার:

//create request with its porperties
var request = new httpRequest();
request.method = "GET";
request.url = "https://example.com/api?parameter=value";

//create callback for success containing the response
request.success = function(response) {
    console.log(response);
};

//and a fail callback containing the error
request.fail = function(error) {
    console.log(error);
};

//and finally send it away
request.send();

2
লোকেরা দয়া করে আমি কী ভুল করেছি সে সম্পর্কে কিছু মন্তব্য দিতে পারে? সেভাবে খুব সহায়ক নয়!
ফ্লাইং 0 ট্যাট 0

আমার মতে সেরা উত্তর, যদি কেউ ইএস 5 তে কোডিং করে সরল জাভাস্ক্রিপ্ট ব্যবহার করে।
কোডারএক্স

8

আমি ম্যাক ওএস ড্যাশকোড উইজেটগুলির সাথে পরিচিত নই, তবে তারা যদি আপনাকে জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করতে এবং এক্সএমএলএইচটিপিআরকোয়েস্টগুলি সমর্থন করতে দেয় তবে আমি jQuery ব্যবহার করব এবং এরকম কিছু করব:

var page_content;
$.get( "somepage.php", function(data){
    page_content = data;
});


5

সেরা উপায় হ'ল এজেএক্স ব্যবহার করা (আপনি এই পৃষ্ঠা টিজাগে একটি সাধারণ টিউটোরিয়াল খুঁজে পেতে পারেন )। কারণটি হ'ল আপনি যে কোনও প্রযুক্তি ব্যবহার করতে পারেন তার জন্য আরও কোডের প্রয়োজন, এটি পুনরায় কাজ না করে ক্রস ব্রাউজারে কাজ করার গ্যারান্টিযুক্ত নয় এবং আপনার ডেটা পার্সিং করে ফ্রেমগুলিতে লুকিয়ে থাকা পৃষ্ঠাগুলি খোলার মাধ্যমে তাদের আরও ক্লায়েন্ট মেমোরি ব্যবহার করা প্রয়োজন। এজেএক্স এই পরিস্থিতিতে যাওয়ার উপায়। আমার জাভাস্ক্রিপ্ট ভারি বিকাশের দুই বছর।


5

যারা AngularJs ব্যবহার করেন তাদের ক্ষেত্রে এটি $http.get:

$http.get('/someUrl').
  success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
  }).
  error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

5

আপনি দুটি উপায়ে একটি HTTP অনুরোধ পেতে পারেন:

  1. এক্সএমএল ফর্ম্যাট ভিত্তিক এই পদ্ধতির। অনুরোধের জন্য আপনাকে URL টি পাস করতে হবে।

    xmlhttp.open("GET","URL",true);
    xmlhttp.send();
  2. এই এক jQuery উপর ভিত্তি করে। আপনি কল করতে চান এমন URL এবং ফাংশন_নাম আপনাকে নির্দিষ্ট করতে হবে specify

    $("btn").click(function() {
      $.ajax({url: "demo_test.txt", success: function_name(result) {
        $("#innerdiv").html(result);
      }});
    }); 

5

জাভা স্ক্রিপ্ট প্রতিশ্রুতি ব্যবহার করে এই আনুন এপিআই করার জন্য প্রস্তাবিত পন্থা। এক্সএমএলএইচটিপিআরকোয়েস্ট (এক্সএইচআর), আইফ্রেম অবজেক্ট বা গতিশীল ট্যাগগুলি পুরানো (এবং ক্লানকিয়ার) পদ্ধতির are

<script type=“text/javascript”> 
    // Create request object 
    var request = new Request('https://example.com/api/...', 
         { method: 'POST', 
           body: {'name': 'Klaus'}, 
           headers: new Headers({ 'Content-Type': 'application/json' }) 
         });
    // Now use it! 

   fetch(request) 
   .then(resp => { 
         // handle response }) 
   .catch(err => { 
         // handle errors 
    }); </script>

এখানে দুর্দান্ত আনার ডেমো এবং MDN ডক্স রয়েছে


4
function get(path) {
    var form = document.createElement("form");
    form.setAttribute("method", "get");
    form.setAttribute("action", path);
    document.body.appendChild(form);
    form.submit();
}


get('/my/url/')

পোস্ট অনুরোধের জন্য একই জিনিস করা যেতে পারে।
এই লিঙ্কটি একবার দেখুন একটি ফর্ম জমা মত জাভাস্ক্রিপ্ট পোস্ট অনুরোধ


4

সাধারণ অ্যাসিঙ্ক অনুরোধ:

function get(url, callback) {
  var getRequest = new XMLHttpRequest();

  getRequest.open("get", url, true);

  getRequest.addEventListener("readystatechange", function() {
    if (getRequest.readyState === 4 && getRequest.status === 200) {
      callback(getRequest.responseText);
    }
  });

  getRequest.send();
}


2
// Create a request variable and assign a new XMLHttpRequest object to it.
var request = new XMLHttpRequest()

// Open a new connection, using the GET request on the URL endpoint
request.open('GET', 'restUrl', true)

request.onload = function () {
  // Begin accessing JSON data here
}

// Send request
request.send()

1

আপনি যদি কোনও ড্যাশবোর্ড উইজেটের কোড ব্যবহার করতে চান এবং আপনি তৈরি প্রতিটি উইজেটে জাভাস্ক্রিপ্ট লাইব্রেরি অন্তর্ভুক্ত করতে চান না, তবে আপনি সাফারি স্থানীয়ভাবে সমর্থন করে এমন বস্তু XMLHttpRequest ব্যবহার করতে পারেন।

অ্যান্ড্রু হেজেস হিসাবে রিপোর্ট করা হয়েছে, একটি উইজেটের ডিফল্টরূপে কোনও নেটওয়ার্কে অ্যাক্সেস নেই; আপনার সেই সেটিংটি উইজেটের সাথে সম্পর্কিত তথ্য.পল্লিস্টে পরিবর্তন করতে হবে।


1

প্রতিশ্রুতি সহ জওনের কাছ থেকে সেরা উত্তরে রিফ্রেশ করা আমার কোড:

let httpRequestAsync = (method, url) => {
    return new Promise(function (resolve, reject) {
        var xhr = new XMLHttpRequest();
        xhr.open(method, url);
        xhr.onload = function () {
            if (xhr.status == 200) {
                resolve(xhr.responseText);
            }
            else {
                reject(new Error(xhr.responseText));
            }
        };
        xhr.send();
    });
}

1

আধুনিক, পরিষ্কার এবং সংক্ষিপ্ততম

fetch('https://www.randomtext.me/api/lorem')


0

আপনি খাঁটি জেএসের সাহায্যেও এটি করতে পারেন:

// Create the XHR object.
function createCORSRequest(method, url) {
  var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// XHR for Chrome/Firefox/Opera/Safari.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// XDomainRequest for IE.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
}

// Make the actual CORS request.
function makeCorsRequest() {
 // This is a sample server that supports CORS.
 var url = 'http://html5rocks-cors.s3-website-us-east-1.amazonaws.com/index.html';

var xhr = createCORSRequest('GET', url);
if (!xhr) {
alert('CORS not supported');
return;
}

// Response handlers.
xhr.onload = function() {
var text = xhr.responseText;
alert('Response from CORS request to ' + url + ': ' + text);
};

xhr.onerror = function() {
alert('Woops, there was an error making the request.');
};

xhr.send();
}

আরও তথ্যের জন্য দেখুন: এইচটিএমএল 5 রকস টিউটোরিয়াল


0
<button type="button" onclick="loadXMLDoc()"> GET CONTENT</button>

 <script>
        function loadXMLDoc() {
            var xmlhttp = new XMLHttpRequest();
            var url = "<Enter URL>";``
            xmlhttp.onload = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == "200") {
                    document.getElementById("demo").innerHTML = this.responseText;
                }
            }
            xmlhttp.open("GET", url, true);
            xmlhttp.send();
        }
    </script>

-1

আপনার ফাইলগুলিকে একটি বস্তু হিসাবে লোড করতে খুব দ্রুত এবং দ্রুত একটি উপায়ে বৈশিষ্ট্য অ্যাক্সেস করার জন্য এক্সএমএল ফাইলগুলির বিকল্প রয়েছে is

  • মনোযোগ দিন, যাতে জাভাস্ক্রিপ্ট তাকে করতে পারে এবং সামগ্রীটির সঠিক ব্যাখ্যা করার জন্য আপনার ফাইলগুলি আপনার HTML পৃষ্ঠার মতো একই ফর্ম্যাটে সংরক্ষণ করা প্রয়োজন। আপনি যদি ইউটিএফ 8 ব্যবহার করেন তবে আপনার ফাইলগুলি ইউটিএফ 8 এ সংরক্ষণ করুন etc.

এক্সএমএল একটি গাছ ঠিক আছে হিসাবে কাজ করে? পরিবর্তে লেখার

     <property> value <property> 

এই জাতীয় একটি সহজ ফাইল লিখুন:

      Property1: value
      Property2: value
      etc.

আপনার ফাইল সংরক্ষণ করুন .. এখন ফাংশন কল করুন ....

    var objectfile = {};

function getfilecontent(url){
    var cli = new XMLHttpRequest();

    cli.onload = function(){
         if((this.status == 200 || this.status == 0) && this.responseText != null) {
        var r = this.responseText;
        var b=(r.indexOf('\n')?'\n':r.indexOf('\r')?'\r':'');
        if(b.length){
        if(b=='\n'){var j=r.toString().replace(/\r/gi,'');}else{var j=r.toString().replace(/\n/gi,'');}
        r=j.split(b);
        r=r.filter(function(val){if( val == '' || val == NaN || val == undefined || val == null ){return false;}return true;});
        r = r.map(f => f.trim());
        }
        if(r.length > 0){
            for(var i=0; i<r.length; i++){
                var m = r[i].split(':');
                if(m.length>1){
                        var mname = m[0];
                        var n = m.shift();
                        var ivalue = m.join(':');
                        objectfile[mname]=ivalue;
                }
            }
        }
        }
    }
cli.open("GET", url);
cli.send();
}

এখন আপনি দক্ষতার সাথে আপনার মান পেতে পারেন।

getfilecontent('mesite.com/mefile.txt');

window.onload = function(){

if(objectfile !== null){
alert (objectfile.property1.value);
}
}

গ্রুপে প্রতিযোগিতা করার জন্য এটি কেবল একটি ছোট্ট উপহার। আপনার মত ধন্যবাদ :)

আপনি যদি স্থানীয়ভাবে আপনার পিসিতে ফাংশনটি পরীক্ষা করতে চান তবে নিম্নলিখিত কমান্ডটি দিয়ে আপনার ব্রাউজারটি পুনরায় চালু করুন (সাফারি বাদে সমস্ত ব্রাউজার দ্বারা সমর্থিত):

yournavigator.exe '' --allow-file-access-from-files
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.