একটি এজেএক্স অনুরোধে কন্টেন্ট-টাইপ এবং ডেটাটাইপ কী?


179

একটি পোষ্ট অনুরোধে বিষয়বস্তু টাইপ এবং ডেটাটাইপ কি? ধরুন আমার কাছে এটি রয়েছে:

$.ajax({
    type : "POST",
    url : /v1/user,
    datatype : "application/json",
    contentType: "text/plain",
    success : function() {

    },
    error : function(error) {

    },

কি contentTypeকি আমরা পাঠাবেন? সুতরাং আমরা উপরের উদাহরণে যা পাঠাই তা হল জেএসএন এবং আমরা যা পাই তা সাধারণ পাঠ্য? আমি আসলে বুঝতে পারি না।

উত্তর:


304

contentTypeআপনি যে ডেটা প্রেরণ করছেন তা application/json; charset=utf-8হ'ল সাধারণ, যেমনটি application/x-www-form-urlencoded; charset=UTF-8ডিফল্ট।

dataTypeকি আপনি সার্ভার থেকে ফিরে পাবার আশা করছেন যারা json, html, text, ইত্যাদি jQuery এর এই ব্যবহার জিনিসটা সাফল্য ফাংশনের প্যারামিটার পূরণ করতে কিভাবে হবে।

আপনি যদি এমন কিছু পোস্ট করেন:

{"name":"John Doe"}

এবং ফিরে প্রত্যাশা:

{"success":true}

তারপরে আপনার উচিত:

var data = {"name":"John Doe"}
$.ajax({
    dataType : "json",
    contentType: "application/json; charset=utf-8",
    data : JSON.stringify(data),
    success : function(result) {
        alert(result.success); // result is an object which is created from the returned JSON
    },
});

আপনি যদি নিম্নলিখিতগুলি আশা করে থাকেন:

<div>SUCCESS!!!</div>

তারপরে আপনার করা উচিত:

var data = {"name":"John Doe"}
$.ajax({
    dataType : "html",
    contentType: "application/json; charset=utf-8",
    data : JSON.stringify(data),
    success : function(result) {
        jQuery("#someContainer").html(result); // result is the HTML text
    },
});

আরও একটি - আপনি যদি পোস্ট করতে চান:

name=John&age=34

তারপরে stringifyডেটা করবেন না এবং করুন:

var data = {"name":"John", "age": 34}
$.ajax({
    dataType : "html",
    contentType: "application/x-www-form-urlencoded; charset=UTF-8", // this is the default value, so it's optional
    data : data,
    success : function(result) {
        jQuery("#someContainer").html(result); // result is the HTML text
    },
});

আপনাকে সত্যিই ধন্যবাদ :) এই "সাফল্য" কি: সত্য। এটি ব্যাকএন্ডে অন্য জসন ফাইল? এই সাফল্য কিভাবে তৈরি হয়? এটাই আমি জানতে চাই
user2759697

2
এটি কেবলমাত্র একটি সাধারণ অবজেক্ট - এটি তৈরি হয়েছে তবে সার্ভার এটি তৈরির সিদ্ধান্ত নেয়। একটি ওয়েব সার্ভার যেমন মনে হয় এমন কিছু প্রেরণ করতে পারে - এইচটিএমএল, পাঠ্য বা এই ক্ষেত্রে, "সাফল্য" এবং সত্যের মান সহ একক সম্পত্তি সহ একটি জেএসওএন অবজেক্ট। আপনার API এর কাঠামোটি কী তা আমি অনুমান করতে পারি না, তবে ASP.NET MVC তে সি # তে এটি এত সহজ কিছু হবে[HttpPost]public JsonResult user(Person postedPerson) { /* Save postedPerson to DB */ return Json(new { success = true }); }
জো এনোস

1
মনোযোগ দিন যে শব্দ টাইপের ক্ষেত্রে আপনার মূলধন টির $.ajax({ dataType : "html", ... পরিবর্তে ব্যবহার করা উচিত $.ajax({ datatype : "html",... গুরুত্বপূর্ণ। পরীক্ষা করে দেখুন jQuery এর এপিআই
ভাদিম Levkovsky

1
@Jacques আমি তারা কাজ করতে পারে অনুমান করা requestContentTypeএবং responseDataType, কিন্তু বাস্তবে, একবার আপনি এটি একটি কয়েক বার সম্পন্ন করেছি, এবং আপনি এপিআই বুঝতে আপনি অতিরিক্ত টাইপিং উপযুক্ত করা যথেষ্ট বিভ্রান্ত করা হবে না।
জো আনোস

1
@ স্টম প্রশ্ন এবং আমার উত্তরটি পোস্টের জন্য সুনির্দিষ্ট ছিল, তবে আমি যদি মনে করি, আপনি যদি কোনও জিইটি-তে ডেটা হিসাবে কোনও সাধারণ সরল অবজেক্টটি পাস করেন তবে এটি কী-ভ্যালু জোড়গুলির সাহায্যে ক্যোয়ারী স্ট্রিংয়ে পরিণত হবে। নেস্টেড মান সহ আপনার যদি কোনও জটিল অবজেক্ট থাকে তবে কি হবে তা নিশ্চিত নন - তবে আপনি যদি আগ্রহী হন তবে এটি চেষ্টা করা কঠিন হবে না। যদিও বাস্তব জীবনে আমি তা কখনই করব না - খুব কমই আমি কখনও জিইটি তে এজেএক্স ব্যবহার করি না।
জো আনোস

32

JQuery ডকুমেন্টেশন থেকে - http://api.jquery.com/jQuery.ajax/

contentType যখন সার্ভারে ডাটা পাঠানোর সময় এই বিষয়বস্তুর প্রকার ব্যবহার করুন।

ডাটাটাইপ তথ্য যে ধরনের আপনি সার্ভার থেকে ফিরে পাবার আশা করছি। যদি কোনওটি নির্দিষ্ট না করা থাকে তবে jQuery প্রতিক্রিয়ার MIME টাইপের ভিত্তিতে এটি নির্ধারণের চেষ্টা করবে

"পাঠ্য": একটি সরল পাঠ্য স্ট্রিং।

তাই আপনি যদি চান contentType হতে application/jsonএবং ডাটাটাইপ হতে text:

$.ajax({
    type : "POST",
    url : /v1/user,
    dataType : "text",
    contentType: "application/json",
    data : dataAttribute,
    success : function() {

    },
    error : function(error) {

    }
});

ধন্যবাদ প্রকৃতপক্ষে এবং অ্যাপ্লিকেশন / জসন এ এই অ্যাপ্লিকেশনটি কি। এটা কি কোন পথ?
ব্যবহারকারী2759697

1
@ user2759697 এটি JSON এর জন্য নির্ধারিত মাইমে টাইপের একটি অংশ। এই প্রশ্নটি দেখুন - স্ট্যাকওভারফ্লো.com
রিচার্ড ডালটন

4
এসও সম্পর্কে আমি এটিই পছন্দ করি ... স্পষ্টত উল্লেখ করার জন্য প্রতিবেদন পান ...> _ <
ক্রিস্টোফ

1

Http://api.jquery.com/jQuery.ajax/ দেখুন , সেখানে ডেটাটাইপ এবং কনটেন্ট টাইপের উল্লেখ রয়েছে।

তারা উভয়ই সার্ভারের অনুরোধে ব্যবহৃত হয় যাতে সার্ভারটি কী ধরণের ডেটা গ্রহণ / প্রেরণ করতে পারে তা জানে।

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