javascript - JQuery সঙ্গে AJAX অনুরোধে হেডার যোগ করুন



post http-headers (4)

JQuery অ্যাজাক্স কলটিতে একটি অনুরোধ শিরোনাম সেট করার জন্য এখানে একটি উদাহরণ দেওয়া হল:

$.ajax({
  type: "POST",
  beforeSend: function(request) {
    request.setRequestHeader("Authority", authorizationToken);
  },
  url: "entities",
  data: "json=" + escape(JSON.stringify(createRequestObject)),
  processData: false,
  success: function(msg) {
    $("#results").append("The result =" + StringifyPretty(msg));
  }
});

আমি jQuery থেকে একটি AJAX পোস্ট অনুরোধে একটি কাস্টম হেডার যোগ করতে চাই।

আমি এটি চেষ্টা করেছি:

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "My-First-Header":"first value",
        "My-Second-Header":"second value"
    }
    //OR
    //beforeSend: function(xhr) { 
    //  xhr.setRequestHeader("My-First-Header", "first value"); 
    //  xhr.setRequestHeader("My-Second-Header", "second value"); 
    //}
}).done(function(data) { 
    alert(data);
});

যখন আমি এই অনুরোধ পাঠাতে এবং আমি ফায়ারবগ দিয়ে দেখি, আমি এই শিরোনামটি দেখি:

বিকল্প xxxx / yyyy HTTP / 1.1
হোস্ট: 127.0.0.1:6666
ব্যবহারকারী এজেন্ট: মোজিলা / 5.0 (উইন্ডোজ এনটি 6.1; WOW64; RV: 11.0) Gecko / 20100101 ফায়ারফক্স / 11.0
গ্রহণ করুন: পাঠ্য / এইচটিএমএল, অ্যাপ্লিকেশন / এক্সএটিএমএল + এক্সএমএল, অ্যাপ্লিকেশন / এক্সএমএল; q = 0.9, / ; q = 0.8
গ্রহণযোগ্য ভাষা: fr, fr-fr; q = 0.8, en-us; q = 0.5, en; q = 0.3
গ্রহণ-এনকোডিং: gzip, deflate
সংযোগ: রাখা-জীবিত
মূল: নাল
অ্যাক্সেস-কন্ট্রোল-অনুরোধ-পদ্ধতি: পোস্ট
অ্যাক্সেস-কন্ট্রোল-অনুরোধ-হেডারগুলি: আমার-প্রথম শিরোনাম, আমার-দ্বিতীয় শিরোনাম
প্রগমা: কোন ক্যাশে
ক্যাশ-কন্ট্রোল: কোন ক্যাশে

কেন আমার কাস্টম হেডার Access-Control-Request-Headers :

অ্যাক্সেস-কন্ট্রোল-অনুরোধ-হেডারগুলি: আমার-প্রথম শিরোনাম, আমার-দ্বিতীয় শিরোনাম

আমি এই মত শিরোনাম মান আশা ছিল:

আমার প্রথম ফার্স্ট হেডার: প্রথম মান
আমার দ্বিতীয়-হেডার: দ্বিতীয় মান

এটা কি সম্ভব?


Answer #1

এবং সেই কারণে আপনি জাভাস্ক্রিপ্টের সাথে একটি বট তৈরি করতে পারবেন না, কারণ আপনার বিকল্পগুলি ব্রাউজার আপনাকে যা করতে দেয় তার জন্য সীমাবদ্ধ। আপনি কেবল এমন একটি ব্রাউজার অর্ডার করতে পারবেন না যা CORS নীতি অনুসরণ করে, যা বেশিরভাগ ব্রাউজার অনুসরণ করে, অন্য উত্সগুলিতে র্যান্ডম অনুরোধ পাঠাতে এবং আপনাকে কেবলমাত্র প্রতিক্রিয়াটি পেতে দেয়!

অতিরিক্তভাবে, যদি আপনি ব্রাউজারগুলির সাথে আসা ডেভেলপার সরঞ্জামগুলি থেকে origin-header মতো কিছু অনুরোধ শিরোনামগুলি নিজে সম্পাদনা করার চেষ্টা করেন তবে ব্রাউজার আপনার সম্পাদনাটি প্রত্যাখ্যান করবে এবং একটি প্রফ্লাইট OPTIONS অনুরোধ পাঠাতে পারে।


Answer #2

ফায়ারফক্সে আপনি যা দেখেছেন তা প্রকৃত অনুরোধ নয়; মনে রাখবেন HTTP পদ্ধতিটি বিকল্প নয়, POST নয়। এটি আসলে 'প্রাক-ফ্লাইট' অনুরোধ ছিল যে ব্রাউজারটি ক্রস-ডোমেন AJAX অনুরোধ অনুমোদিত কিনা তা নির্ধারণ করে:

http://www.w3.org/TR/cors/

প্রাক-ফ্লাইট অনুরোধে অ্যাক্সেস-কন্ট্রোল-অনুরোধ-হেডারের শিরোনাম প্রকৃত অনুরোধে শিরোনামের তালিকা অন্তর্ভুক্ত করে। ব্রাউজারটি প্রকৃত অনুরোধটি জমা দেওয়ার আগে সার্ভারটি এই প্রসঙ্গে সমর্থিত কিনা তা ফেরত দেওয়ার প্রত্যাশিত প্রত্যাশিত।


Answer #3

rack-cors মণি ব্যবহার করার চেষ্টা করুন। এবং আপনার AJAX কল শিরোনাম ক্ষেত্র যোগ করুন।





http-headers