জিকুয়েরির সাথে জিইটি অনুরোধে পরামিতিগুলি কীভাবে পাস করবেন


252

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

$.ajax({
    url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
    success: function(response) {
        //Do Something
    },
    error: function(xhr) {
        //Do Something to handle error
    }
});

আমি উদাহরণগুলি দেখেছি যেখানে ক্যোরি স্ট্রিং প্যারামিটারগুলি অ্যারে হিসাবে পাস করা হয় তবে আমি দেখেছি যে উদাহরণগুলি $.ajax()মডেলটি ব্যবহার করে না , পরিবর্তে তারা সরাসরি চলে যায় $.get()। উদাহরণ স্বরূপ:

$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );

আমি aj .জ্যাক্স () ফর্ম্যাটটি ব্যবহার করতে পছন্দ করি কারণ এটি আমি ব্যবহার করি (বিশেষত কোনও ভাল কারণ নেই - কেবল একটি ব্যক্তিগত পছন্দ)।

09/04/2013 সম্পাদনা করুন:

আমার প্রশ্নটি বন্ধ হওয়ার পরে ("খুব লোকালাইজড" হিসাবে) আমি একটি সম্পর্কিত (অভিন্ন) প্রশ্ন পেয়েছি - 3 টি আপভোট কম-বেশি (প্রথম স্থানে এটি না পাওয়ার জন্য আমার খারাপ):

পোষ্ট তৈরি করতে jquery ব্যবহার করে, কীভাবে সঠিকভাবে 'ডেটা' পরামিতি সরবরাহ করবেন?

এটি আমার প্রশ্নের পুরোপুরি উত্তর দিয়েছে, আমি দেখতে পেয়েছি যে এটি করা এইভাবে পড়া সহজ এবং আমি encodeURIComponent()ইউআরএল বা ডেটা মানগুলিতে ম্যানুয়ালি ব্যবহার করার দরকার নেই (যা আমি বাইপেনের উত্তরে অস্পষ্ট পেয়েছি)। এটি কারণ এর dataমাধ্যমে স্বয়ংক্রিয়ভাবে এনকোড হওয়া থাকে $.param()। এটি যদি অন্য কারও কাজে লাগতে পারে তবে আমি এই উদাহরণটি দিয়েছিলাম:

$.ajax({
    url: "ajax.aspx?ajaxid=4",
    data: { 
        "VarA": VarA, 
        "VarB": VarB, 
        "VarC": VarC
    },
    cache: false,
    type: "POST",
    success: function(response) {

    },
    error: function(xhr) {

    }
});

$ .get মাত্র $ .ajax জন্য একটি শর্টকাট
Denys Seguret

ব্যতীত, আপনার সম্পাদনা 09/04/2013 একটি পোস্ট অনুরোধ :-) তবে এটি GET এর মতো দৃশ্যত কাজ করে।
কমনপাইক

উত্তর:


307

এজ্যাক্সের ডেটা বিকল্পটি ব্যবহার করুন। আপনি dataআজাক্সে বিকল্পের মাধ্যমে সার্ভারে ডেটা অবজেক্টটি প্রেরণ করতে পারেন এবং এটি typeকীভাবে আপনি এটি প্রেরণ করছেন তা নির্ধারণ করে ( POSTবা হয় GET)। ডিফল্ট টাইপ হ'ল GETমেথড

এটা চেষ্টা কর

$.ajax({
  url: "ajax.aspx",
  type: "get", //send it through get method
  data: { 
    ajaxid: 4, 
    UserID: UserID, 
    EmailAddress: EmailAddress
  },
  success: function(response) {
    //Do Something
  },
  error: function(xhr) {
    //Do Something to handle error
  }
});

এবং আপনি (যদি আপনি পিএইচপি ব্যবহার করছেন) দ্বারা ডেটা পেতে পারেন

 $_GET['ajaxid'] //gives 4
 $_GET['UserID'] //gives you the sent userid

এসপেক্সে, আমি বিশ্বাস করি যে এটি (ভুল হতে পারে)

 Request.QueryString["ajaxid"].ToString(); 

2
আপনি প্রয়োজন নেই encodeURIComponent। jquery আপনার জন্য এটি করবে।
লেন

2
পুনঃটুইট এটি পিএইচপি (সার্ভার সাইড) নির্ভর করে আপনি কোন সার্ভিস ভাষা ব্যবহার করছেন তার উপর। পিএইচপি তে আমরা অনুরোধের মানগুলি পাই get
বাইপেন

1
@bipen। রোজার যে। কাউকে বিভ্রান্ত না করার জন্য আমি আমার মন্তব্য মুছলাম। ধন্যবাদ.
ર્বি এল। ওয়ালেস

আপনাকে jQuery.param () ফাংশন দিয়ে বস্তুটি GET পরামিতিগুলিতে রূপান্তর করতে হবে, সুতরাং jQuery ব্যবহার করে আপনার ব্যবহার করা উচিত data:$.param({ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress}), এর পরিবর্তেdata: { ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress }
পাওয়ার ইঞ্জিনিয়ারিং


10

এখানে jQuery ব্যবহার করে সিনট্যাক্স $.get

$.get(url, data, successCallback, datatype)

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

var url = 'ajax.asp';
var data = { ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress };
var datatype = 'jsonp';

function success(response) {
// do something here 
}

$.get('ajax.aspx', data, success, datatype)

নোট $.get আপনাকে ত্রুটি হ্যান্ডলার সেট করার সুযোগ দেয় না। তবে এটি করার বিভিন্ন উপায় রয়েছে either .JaxSetup () , $ .axaxerr () ব্যবহার করে বা নীচের মত .failআপনার উপর একটি শৃঙ্খলাবদ্ধ$.get

$.get(url, data, success, datatype)
 .fail(function(){
})

ব্রাউজারের একই উত্স নীতি সম্পর্কিত সমস্যাগুলির কারণে 'জসনপ' হিসাবে ডেটাটাইপটি সেট করার কারণ হ'ল তবে আপনি যদি সেই একই ডোমেইনে অনুরোধ করছেন যেখানে আপনার জাভাস্ক্রিপ্টটি হোস্ট করা আছে, আপনাকে ডেটাটাইপ সেট করে ঠিক রাখা উচিত json

আপনি jQuery ব্যবহার করতে না চান $.getতাহলে ডক্স দেখতে জন্য $.ajaxযা আরো নমনীয়তা জন্য রুম পারবেন


4

এটি যুক্ত করার চেষ্টা করুন:

$.ajax({
    url: "ajax.aspx",
    type:'get',
    data: {ajaxid:4, UserID: UserID , EmailAddress: encodeURIComponent(EmailAddress)},
    dataType: 'json',
    success: function(response) {
      //Do Something
    },
    error: function(xhr) {
    //Do Something to handle error
    }
});

ডেটাটাইপ কী প্রত্যাশিত তা নির্ভর করে, আপনি নির্ধারণ করতে পারেন html, json, script, xml


আপনার সমাধানটি সহায়ক, তবে ভ্যারিয়েবলটিকে IDপরামিতি হিসাবে দেওয়ার আগে কীভাবে সংজ্ঞায়িত করবেন তা ভাবছেন ? আমার কাছে এসও, স্ট্যাকওভারফ্লো . com / জিজ্ঞাসা / ৪১১৯২31১৩১ / এ কিউ আছে । আমি এই কিউতে আরও অনেক এগিয়ে গিয়েছি, যেখানে এখন আমি একটি জেকারি ডায়ালগ কল করি এবং মাইএসকিএল থেকে ডেটা পুনরুদ্ধার করতে এজ্যাক্স কল করি। প্রতিটি ডেটাপয়েন্ট পোস্টের সাথে সম্পর্কিত অনন্য আইডি কীভাবে পুনরুদ্ধার করতে হবে তার লিঙ্কটি আমি নিখোঁজ করছি । আপনি যদি আমাকে সাহায্য করতে পারেন তবে প্রশংসা করুন। আপনাকে ধন্যবাদ
ব্যবহারকারীর 24249203

1

ডেটা সম্পত্তি আপনাকে একটি স্ট্রিংয়ে প্রেরণ করতে দেয়। আপনার সার্ভারের সাইড কোডে, এটি একটি স্ট্রিং আর্গুমেন্ট নাম "মাইভার" হিসাবে স্বীকার করুন এবং তারপরে আপনি এটিকে পার্স করতে পারেন।

$.ajax({
    url: "ajax.aspx",
    data: [myVar = {id: 4, email: 'emailaddress', myArray: [1, 2, 3]}];
    success: function(response) {
    //Do Something
    },
    error: function(xhr) {
    //Do Something to handle error
    }
});

1
আপনি কেন করবেন stringify? jQuery এর ajaxবাস্তবায়ন আপনার জন্য এটি যত্ন করে।
স্টিভ

1

যেখানে আমি নির্দিষ্ট করেছি সেখানে একই সমস্যা dataছিল তবে ব্রাউজারটি শেষ হওয়ার সাথে ইউআরএলগুলিতে অনুরোধগুলি প্রেরণ করে [Object object]

আপনার processDataসেট করা উচিত ছিল true

processData: true, // You should comment this out if is false or set to true

ওএমজি, ধন্যবাদ 4 ঘন্টা অনুসন্ধান এবং চেষ্টা করার পরে অবশেষে এখানে একটি সমস্যার সমাধান হয়েছে :-)
কিম কে।


-1

এজাক্স পদ্ধতির ডেটা প্যারামিটার আপনাকে সার্ভার সাইডে ডেটা প্রেরণ করতে দেয় server সার্ভারে আপনি ডেটাটির জন্য অনুরোধ করতে পারেন the কোডটি দেখুন

var id=5;
$.ajax({
    type: "get",
    url: "url of server side script",
    data:{id:id},
    success: function(res){
        console.log(res);
    },
error:function(error)
{
console.log(error);
}
});

সার্ভারের পাশে এটি G _GET ভেরিয়েবল ব্যবহার করে গ্রহণ করুন।

$_GET['id'];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.