একটি jQuery AJAX পেতে কল অনুরোধ শিরোনাম পাস


242

আমি jQuery ব্যবহার করে একটি AJAX GET এ অনুরোধ শিরোনামগুলি পাস করার চেষ্টা করছি। নিম্নলিখিত ব্লকে, "ডেটা" স্বয়ংক্রিয়ভাবে ক্যোরিস্ট্রিংয়ের মানগুলি পাস করে। পরিবর্তে অনুরোধ শিরোনামে সেই ডেটাটি পাস করার কোনও উপায় আছে কি?

$.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         data: { signature: authHeader },
         type: "GET",
         success: function() { alert('Success!' + authHeader); }
      });

নিম্নলিখিতগুলিও কাজ করে না

$.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         beforeSend: { signature: authHeader },
         async: false,                    
         type: "GET",
                    success: function() { alert('Success!' + authHeader); }
      });

উত্তর:


289

ব্যবহার beforeSend:

$.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         data: { signature: authHeader },
         type: "GET",
         beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},
         success: function() { alert('Success!' + authHeader); }
      });

http://api.jquery.com/jQuery.ajax/

http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method


4
আমি জানি এখনই এটি অতি পুরানো। {xhr.setRequestHeader ( 'এক্স-টেস্ট-শিরোলেখ', 'পরীক্ষা-মান')} ফাংশন (XHR): beforeSend কিন্তু আমি যোগ করতে যে একটি কমা পরে হওয়া উচিত চেয়েছিলেন
matthew_360

পূর্ববর্তী বিক্রয়: ফাংশন (xhr) {xhr.setRequestHeader ('এক্স-টেস্ট-শিরোলেখ', 'পরীক্ষা-মান'); IE ক্রোম এবং ফায়ারফক্সে ভাল কাজ করে তবে আইই 8 তে নয়। কোনও এক্স-টেস্ট-হেডার পাঠানো নেই send কিভাবে ঠিক হবে এটা? ধন্যবা
user1940268

আমি চেষ্টা করেছি তবে "jquery-1.11.1.min.js" ব্যবহার করে শিরোনামের বিবরণটি পাস করার সময় এটি ত্রুটি ছুঁড়েছে
ঘনশ্যাম বড়ওয়ালিয়া

4
নীচের উত্তরটি দেখুন, আরও অনেক প্রাসঙ্গিক
thedanotto

আমি যোগ করতে কি চান X-Test-Headerএবং X-Test-Headerকরতে beforeSend?
Si8

394

JQuery 1.5 হিসাবে, নীচে headersআপনি এখানে প্রবেশ করতে পারেন এমন একটি হ্যাশ রয়েছে:

$.ajax({
    url: "/test",
    headers: {"X-Test-Header": "test-value"}
});

Http://api.jquery.com/jQuery.ajax থেকে :

শিরোনাম (1.5 যোগ করা হয়েছে): অনুরোধ সহ প্রেরণে অতিরিক্ত শিরোনাম কী / মান জোড়ার মানচিত্র। এই সেটিংটি আগে পাঠানো ফাংশন বলার আগে সেট করা থাকে; অতএব, শিরোনাম সেটিংসে কোনও মান পূর্ববর্তী পাঠানো ফাংশনের মধ্যে থেকে ওভাররাইট করা যেতে পারে।


6
এটি কি বিশ্বব্যাপী সেট করা যেতে পারে?
ট্রিপ

77
হ্যাঁ:$.ajaxSetup({headers: {"X-Test-Header": "test-value"}})
লুকাশ

6
JQuery ডক্সটি আর aj .JaxSetup () ব্যবহার করার পরামর্শ দেয় না ( api.jquery.com/jQuery.ajaxSetup )
গ্লেন সেল

2
@ গ্লেন তাদের যুক্তি হ'ল প্লাগইনগুলি ডিফল্ট সেটিংস কাজ করার আশা করে। ব্যক্তিগতভাবে, আমি মনে করি এটি একটি প্রদত্ত যে আপনি যদি বিশ্বব্যাপী কিছু পরিবর্তন করেন তবে ডিফল্ট সেটিংসের উপর নির্ভর করে এমন কিছু কাজ নাও করতে পারে।
MiniRagnarok

1
@ ট্রিপ বিশ্বব্যাপী আমার প্রস্তাবনা ... j .জ্যাক্স () কল করার পরিবর্তে এজ্যাক্স কল (বিমূর্তি) এর জন্য আপনার নিজের মোড়ক লিখুন।
এরিক ফিলিপস

45

$.ajax({
            url: URL,
            type: 'GET',
            dataType: 'json',
            headers: {
                'header1': 'value1',
                'header2': 'value2'
            },
            contentType: 'application/json; charset=utf-8',
            success: function (result) {
               // CallBack(result);
            },
            error: function (error) {
                
            }
        });


JQuery 1.7.2, C # API 2.x ব্যবহার করে শিরোনাম HttpRequestMessage r = new HttpRequestMessage(); int mylogonID = Convert.ToInt32(r.Headers.GetValues("logonID"));ত্রুটিটি বের করার চেষ্টা করার সময় প্রদত্ত শিরোনামটি খুঁজে পাওয়া যায় নি। কারণ আর.হাইডার্স খালি।
Jeb50

আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন - স্ট্রিং [] আইডস = সিস্টেম.ওয়েব.এইচটিপি কনটেক্সট.কন্টেনার.রেকেস্ট.হিডার্স ["লগনআইডি"]। বিভক্ত (',');
উত্সাহী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.