J আজাক্স পোস্টে প্যারামিটারগুলি কীভাবে পাস করবেন?


135

আমি এই লিঙ্কে বর্ণিত টিউটোরিয়াল অনুসরণ করেছি । নীচের কোডে কোনও কারণে ডেটা প্যারামিটার হিসাবে ইউআরএলে সংযুক্ত করা হয়নি তবে আমি যদি /?field1="hello"এটি ব্যবহার করে সরাসরি ইউআরএল এ সেট করি তবে এটি কাজ করে।

$.ajax({
        url: 'superman',
        type: 'POST',
        data: { field1: "hello", field2 : "hello2"} ,
        contentType: 'application/json; charset=utf-8',
        success: function (response) {
            alert(response.status);
        },
        error: function () {
            alert("error");
        }
    }); 

8
আপনি যদি ইউআরএলতে যুক্ত হওয়ার জন্য আপনার প্যারামগুলি সন্ধান করছেন তবে আপনাকে 'জিইটি' টাইপ পরিবর্তন করতে হবে। 'পোস্ট' এর পরিবর্তে এইচটিটিপি শিরোনামে প্যারামিটারগুলি পাস করবে।
ছিনতাই

উত্তর:


126

আমি আপনাকে সহজ ক্ষেত্রে jQuery এর সিনট্যাক্স $.postবা $.getসিনট্যাক্স ব্যবহার করার পরামর্শ দিচ্ছি :

$.post('superman', { field1: "hello", field2 : "hello2"}, 
    function(returnedData){
         console.log(returnedData);
});

আপনার যদি ব্যর্থ মামলাগুলি ধরার দরকার হয় তবে কেবল এটি করুন:

$.post('superman', { field1: "hello", field2 : "hello2"}, 
    function(returnedData){
         console.log(returnedData);
}).fail(function(){
      console.log("error");
});

অতিরিক্ত হিসাবে, আপনি যদি সর্বদা একটি JSON স্ট্রিং প্রেরণ করেন তবে আপনি খুব শেষের দিকে আরও একটি প্যারামিটার সহ $ .getJSON বা ost .পোস্ট ব্যবহার করতে পারেন ।

$.post('superman', { field1: "hello", field2 : "hello2"}, 
     function(returnedData){
        console.log(returnedData);
}, 'json');

1
JQuery- র নতুন সংস্করণগুলি একটি হ'ল (), ব্যর্থ () বা সর্বদা () হ্যান্ডলারের p .পোস্ট এবং $। গেজেটটি সমর্থন করে support দেখুন: api.jquery.com/jQuery.post
সাইবারমনক

কি field1:এবং কি "hello"? জেএস বা পিএইচপি মধ্যে পরিবর্তনশীল?
এমটিবিথপ্রো

ফিল্ড 1 এবং ফিল্ড 2 হ'ল পোষ্ট ভেরিয়েবল। হ্যালো এবং হ্যালো 2 তাদের মান।
আলভারো

57

জিইটি পদ্ধতি ব্যবহার করে দেখুন,

var request = $.ajax({
    url: 'url',
    type: 'GET',
    data: { field1: "hello", field2 : "hello2"} ,
    contentType: 'application/json; charset=utf-8'
});

request.done(function(data) {
      // your success code here
});

request.fail(function(jqXHR, textStatus) {
      // your failure code here
});

আপনি পোষ্ট পদ্ধতিতে ইউআরএলে প্যারামিটারগুলি দেখতে পাচ্ছেন না।

সম্পাদনা:

অবমূল্যায়নের বিজ্ঞপ্তি: jqXH. 3.0 হিসাবে jqXHR.success (), jqXHR.error (), এবং jqXHR.complete () কলব্যাকগুলি সরানো হয়েছে। আপনি এর পরিবর্তে jqXHR.done (), jqXHR.fail (), এবং jqXHR.always () ব্যবহার করতে পারেন।


53

Jquery.ajax আপনার জন্য পোষ্টের ডেটা স্বয়ংক্রিয়ভাবে এনকোড করে না এটি জিইটি ডেটার জন্য যেভাবে করে। জিকিউরি আশা করে যে আপনার ডেটা অনুরোধের বডিটিতে সরাসরি তারের মাধ্যমে প্রেরণ করার জন্য প্রাক-ফর্ম্যাট করা হবে।

সমাধান হ'ল jQuery.param ফাংশনটি কোনও ক্যোরি স্ট্রিং তৈরি করতে হয় যা বেশিরভাগ স্ক্রিপ্টগুলি পোষ্ট অনুরোধগুলি প্রত্যাশা করে।

$.ajax({
    url: 'superman',
    type: 'POST',
    data: jQuery.param({ field1: "hello", field2 : "hello2"}) ,
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    success: function (response) {
        alert(response.status);
    },
    error: function () {
        alert("error");
    }
}); 

এই ক্ষেত্রে paramপদ্ধতিটি এতে ডেটা ফর্ম্যাট করে:

field1=hello&field2=hello2

Jquery.ajax ডকুমেন্টেশন বলছেন পতাকা নামক নেই processDataযে নিয়ন্ত্রণ এই এনকোডিং স্বয়ংক্রিয়ভাবে বা না সম্পন্ন করা হয় কিনা। ডকুমেন্টেশন বলে যে এটি ডিফল্ট হয় true, তবে এটি ব্যবহার করার সময় আমি যে আচরণটি লক্ষ্য করি তা নয় POST


7
আমি মনে করি এটিই একমাত্র উত্তর যা 'কেন' ব্যাখ্যা করে।
ঝুজি

15
    function FillData() {
    var param = $("#<%= TextBox1.ClientID %>").val();
    $("#tbDetails").append("<img src='Images/loading.gif'/>");
    $.ajax({
        type: "POST",/*method type*/
        contentType: "application/json; charset=utf-8",
        url: "Default.aspx/BindDatatable",/*Target function that will be return result*/
        data: '{"data":"' + param + '"}',/*parameter pass data is parameter name param is value */
        dataType: "json",
        success: function(data) {
               alert("Success");
            }
        },
        error: function(result) {
            alert("Error");
        }
    });   
}

11

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

আপনি যদি এগুলি দেখতে চান তবে পরিবর্তন করুন

    type: 'POST',

প্রতি

    type: 'GET',

নোট করুন যে ব্রাউজারগুলিতে বিকাশ সরঞ্জাম রয়েছে যা আপনাকে আপনার কোডটি ইস্যু করে এমন সম্পূর্ণ অনুরোধগুলি দেখতে দেয়। ক্রোমে এটি "নেটওয়ার্ক" প্যানেলে রয়েছে।


8
$.ajax(
   {
      type: 'post',
      url: 'superman',
      data: { 
        "field1": "hello",
        "field2": "hello1"
      },
      success: function (response) {
        alert("Success !!");
      },
      error: function () {
        alert("Error !!");
      }
   }
);

type: 'POST', ** পরামিতি যোগ হবে অনুরোধ ** যা হয় শরীর থেকে দেখা যায় না যে URL টি যখন type: 'GET', URL- যা পরামিতি appends প্রোফাইল

বেশিরভাগ জনপ্রিয় ওয়েব ব্রাউজারে নেটওয়ার্ক প্যানেল রয়েছে যা সম্পূর্ণ অনুরোধটি দেখায় ।

নেটওয়ার্ক প্যানেলে অনুরোধগুলি দেখতে এক্সএইচআর নির্বাচন করুন ।

এটি এর মাধ্যমেও করা যেতে পারে।

$.post('superman',
      { 
        'field1': 'hello', 
        'field2': 'hello1'
      },
      function (response) {
        alert("Success !");
      }
    );

6

আপনি এটি aj .জ্যাক্স বা $ .পোস্ট ব্যবহার করে করতে পারেন

Aj .ajax ব্যবহার করে:

    $.ajax({
      type: 'post',
      url: 'superman',
      data: { 
        'field1': 'hello', 
        'field2': 'hello1'
      },
      success: function (response) {
        alert(response.status);
      },
      error: function () {
        alert("error");
      }
   });

পোষ্ট ব্যবহার করে:

    $.post('superman',
      { 
        'field1': 'hello', 
        'field2': 'hello1'
      },
      function (response, status) {
        alert(response.status);
      }
    );

আপনাকে অনেক ধন্যবাদ - এটি কাজ করে। তবুও, এটি দুর্দান্ত হবে যদি আপনি এমন কোনও উদাহরণ যুক্ত করতে পারেন যা পোস্ট পরামিতিগুলি পেতে কোনও ফাংশনকে কল করে। ধন্যবাদ! :)
gies0r

3

আপনি কোডটি JSON কীগুলি স্ট্রিং হিসাবে পাস না করেই আপনার কোডটি সঠিক ছিল।

এটির চারপাশে ডাবল বা একক উক্তি থাকা উচিত

"ফিল্ড 1": "হ্যালো", "ফিল্ড 2": "হ্যালো 2"}

$.ajax(
   {
      type: 'post',
      url: 'superman',
      data: { 
        "field1": "hello", // Quotes were missing
        "field2": "hello1" // Here also
      },
      success: function (response) {
        alert(response);
      },
      error: function () {
        alert("error");
      }
   }
);

0

POSTপদ্ধতিতে url এ পরামিতিগুলি প্রেরণের জন্য আপনি কেবল এটির মতো url এ যুক্ত করতে পারেন:

$.ajax({
    type: 'POST',
    url: 'superman?' + jQuery.param({ f1: "hello1", f2 : "hello2"}),
    // ...
}); 

2
যদি প্রশ্নকারী কেবল পোস্টের মাধ্যমে কিছু প্যারাম প্রেরণ করতে চায় তবে অন্যান্য উত্তরগুলি আরও উপযুক্ত হবে, কারণ এটি আরও মানক। প্রশ্নটিতে POST এবং ইউআরএল প্যারামগুলি স্পষ্টভাবে উল্লেখ করা হয়েছে। (উদাহরণস্বরূপ, আমি এই প্রশ্নটি পেয়েছি কারণ আমাকে দেহের যাঁরা রয়েছেন তাদের সাথে পুরোপুরি ইউআরএল প্যারামগুলি সেট করতে হবে এবং আমি এটি স্ট্রাকট্যান্টিং স্ট্রিংয়ের চেয়ে আরও ভাল উপায়ে করতে চাই)) @ ব্যবহারকারী4127 এটি উত্তর হিসাবে গ্রহণ করুন বা আপনার প্রশ্নের সংশোধন করুন।
জান মোলনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.