উত্তর:
আপনার যা প্রয়োজন তার উপর নির্ভর করে বেশ কয়েকটি সমাধান রয়েছে ...
যদি আপনি স্বতন্ত্র অনুরোধে একটি কাস্টম শিরোনাম (বা শিরোনামের সেট) যুক্ত করতে চান তবে কেবল headers
সম্পত্তি যুক্ত করুন:
// Request with custom header
$.ajax({
url: 'foo/bar',
headers: { 'x-my-custom-header': 'some value' }
});
আপনি যদি প্রতিটি অনুরোধে একটি ডিফল্ট শিরোনাম (বা শিরোনামের সেট) যুক্ত করতে চান তবে ব্যবহার করুন $.ajaxSetup()
:
$.ajaxSetup({
headers: { 'x-my-custom-header': 'some value' }
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Overwrites the default header with a new header
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
যদি আপনি চাই প্রতি যে অনুরোধ একটি শিরোলেখ (অথবা হেডার সেট) যোগ তারপর ব্যবহার beforeSend
সঙ্গে হুক $.ajaxSetup()
:
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('x-my-custom-header', 'some value');
}
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Sends both custom headers
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
সম্পাদনা (আরও তথ্য): একটি বিষয় সম্পর্কে সচেতন হওয়াটি হ'ল ajaxSetup
আপনার সাথে কেবলমাত্র একটি সেট ডিফল্ট হেডারের সংজ্ঞা দেওয়া যেতে পারে এবং আপনি কেবল একটির সংজ্ঞা দিতে পারেন beforeSend
। আপনি যদি ajaxSetup
একাধিকবার কল করেন তবে কেবলমাত্র শেষের হেডারের সেটটি প্রেরণ করা হবে এবং কেবলমাত্র শেষের আগে পাঠানো কলব্যাক কার্যকর হবে।
beforeSend
কলব্যাক সংজ্ঞায়িত করতে পারেন । আপনি যদি $.ajaxSetup({ beforeSend: func... })
দুবার কল করেন তবে দ্বিতীয় কলব্যাকটি কেবলমাত্র আগুন জ্বলবে।
ajaxSetup
।
অথবা, আপনি যদি ভবিষ্যতের প্রতিটি অনুরোধের জন্য কাস্টম শিরোনাম প্রেরণ করতে চান তবে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:
$.ajaxSetup({
headers: { "CustomHeader": "myValue" }
});
এইভাবে ভবিষ্যতের প্রতিটি এজাক্স অনুরোধে কাস্টম শিরোনাম থাকবে, যদি না অনুরোধের বিকল্পগুলির দ্বারা স্পষ্টভাবে ওভাররাইড করা হয়। আপনি এখানে আরও তথ্য পেতে পারেনajaxSetup
এক্সএইচআর 2 ব্যবহার করে এখানে একটি উদাহরণ দেওয়া হয়েছে:
function xhrToSend(){
// Attempt to creat the XHR2 object
var xhr;
try{
xhr = new XMLHttpRequest();
}catch (e){
try{
xhr = new XDomainRequest();
} catch (e){
try{
xhr = new ActiveXObject('Msxml2.XMLHTTP');
}catch (e){
try{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}catch (e){
statusField('\nYour browser is not' +
' compatible with XHR2');
}
}
}
}
xhr.open('POST', 'startStopResume.aspx', true);
xhr.setRequestHeader("chunk", numberOfBLObsSent + 1);
xhr.onreadystatechange = function (e) {
if (xhr.readyState == 4 && xhr.status == 200) {
receivedChunks++;
}
};
xhr.send(chunk);
numberOfBLObsSent++;
};
আশা করি এইটি কাজ করবে.
আপনি যদি নিজের অবজেক্ট তৈরি করেন তবে আপনি অনুরোধ প্রেরণের আগে একটি নাম নির্দিষ্ট করতে setRequestHeader ফাংশন এবং একটি মান ব্যবহার করতে পারেন।
$.ajax*
বি / সি ফাংশন ব্যবহার করে না তারা jQuery এর উপর নির্ভর করে না এবং পরিবর্তে এক্সএইচআর ব্যবহার করে তাই এই ক্ষেত্রে এটিই একমাত্র বৈধ বিকল্প।
আপনি jQuery ব্যবহার না করে এটিও করতে পারেন। এক্সএমএলএইচটিপিপিউইকুয়েস্টের প্রেরণ পদ্ধতিটি ওভাররাইড করুন এবং সেখানে শিরোনাম যুক্ত করুন:
XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
var newSend = function(vData) {
this.setRequestHeader('x-my-custom-header', 'some value');
this.realSend(vData);
};
XMLHttpRequest.prototype.send = newSend;
ডক্সে$.ajaxSetup()
বর্ণিত হিসাবে আপনার ব্যবহার এড়ানো উচিত । পরিবর্তে নিম্নলিখিত ব্যবহার করুন:
$(document).ajaxSend(function(event, jqXHR, ajaxOptions) {
jqXHR.setRequestHeader('my-custom-header', 'my-value');
});
ধরে নিচ্ছেন যে আপনার অর্থ "এজ্যাক্স ব্যবহার করার সময়" এবং "একটি এইচটিটিপি রিকোয়েস্ট শিরোনাম", তারপরে headers
আপনি যে অবজেক্টে যাচ্ছেন তার মধ্যে সম্পত্তিটি ব্যবহার করুনajax()
শিরোনাম (1.5 যোগ করা হয়েছে)
ডিফল্ট:
{}
অনুরোধ সহ প্রেরণে অতিরিক্ত শিরোনাম কী / মান জোড়ার মানচিত্র। এই সেটিংটি আগে পাঠানো ফাংশন বলার আগে সেট করা থাকে; অতএব, শিরোনাম সেটিংসে কোনও মান পূর্ববর্তী পাঠানো ফাংশনের মধ্যে থেকে ওভাররাইট করা যেতে পারে।
XMLHttpRequest অবজেক্টের "setRequestHeader" পদ্ধতি ব্যবহার করা উচিত
আপনি জেএস আনতে ব্যবহার করতে পারেন
beforeSend
যখন একটি নতুন সংজ্ঞা দিই তখন কি হয়$.ajax
?