উত্তর:
contentTypeসার্ভারে প্রেরিত এইচটিটিপি শিরোনাম , নির্দিষ্ট বিন্যাস নির্দিষ্ট করে। dataTypeআপনি কী ধরনের প্রতিক্রিয়া আশা করছেন তা jQuery বলছেন । $.ajax()ডকুমেন্টেশন এগুলোর পূর্ণ বিবরণ হিসাবে ভাল হয়েছে।
আপনার নির্দিষ্ট ক্ষেত্রে, প্রথম জিজ্ঞাসা করা হয় জন্য প্রতিক্রিয়া হতে UTF-8, দ্বিতীয় গ্রাহ্য না করে। এছাড়াও প্রথমটি জাভাস্ক্রিপ্ট অবজেক্ট হিসাবে প্রতিক্রিয়াটিকে চিকিত্সা করছে , দ্বিতীয়টি এটি স্ট্রিং হিসাবে বিবেচনা করবে।
সুতরাং প্রথমটি হবে:
success: function(data) {
// get data, e.g. data.title;
}
দ্বিতীয়:
success: function(data) {
alert("Here's lots of data, just a string: " + data);
}
dataType = ""?
(পিএস: নিক ক্র্যাভারের দেওয়া উত্তরটি ভুল)
কনটেন্টটাইপ অনুরোধের অংশ হিসাবে সার্ভারে প্রেরণ করা ডেটার ফর্ম্যাট নির্দিষ্ট করে (এটি প্রতিক্রিয়া হিসাবে খুব বেশি পরে প্রেরণ করা যেতে পারে)।
ডেটা টাইপ ক্লায়েন্ট (ব্রাউজার) দ্বারা প্রাপ্ত ডেটা প্রত্যাশিত বিন্যাস নির্দিষ্ট করে।
দুটোই বদলযোগ্য নয়।
contentTypeসার্ভারে পাঠানো শিরোনামটি হ'ল সার্ভারে ডেটা ফর্ম্যাট (অর্থাত্ বার্তার মূল অংশের সামগ্রী) নির্দিষ্ট করে। এটি পোস্ট এবং পুট অনুরোধগুলির সাথে ব্যবহৃত হয়। সাধারণত আপনি যখন পোষ্ট অনুরোধটি প্রেরণ করেন, বার্তাটির বডিটিতে প্যারামিটারগুলি যেমন থাকে:==============================
নমুনা অনুরোধ:
POST /search HTTP/1.1
Content-Type: application/x-www-form-urlencoded
<<other header>>
name=sam&age=35
==============================
"নাম = সাম এবং বয়স = 35" এর উপরের সর্বশেষ লাইনটি বার্তাটির প্রধান অংশ এবং বিষয়বস্তু টাইপ এটিকে অ্যাপ্লিকেশন / x-www-form-urlencoded হিসাবে নির্দিষ্ট করে যেহেতু আমরা বার্তার মূল অংশে ফর্মের পরামিতিগুলি পার করছি। তবে আমরা কেবলমাত্র প্যারামিটারগুলি প্রেরণে সীমাবদ্ধ নই, আমরা জেসন, এক্সএমএল, ... প্রেরণ করতে পারি (বিভিন্ন ধরণের ডেটা প্রেরণ বিশেষত আরএসটিফুল ওয়েব পরিষেবাদির সাথে দরকারী):
==============================
নমুনা অনুরোধ:
POST /orders HTTP/1.1
Content-Type: application/xml
<<other header>>
<order>
<total>$199.02</total>
<date>December 22, 2008 06:56</date>
...
</order>
==============================
সুতরাং এবার কনটেন্টটাইপ হ'ল: অ্যাপ্লিকেশন / এক্সএমএল, কারণ আমরা যা পাঠাচ্ছি। উপরোক্ত উদাহরণগুলিতে নমুনা অনুরোধ দেখানো হয়েছে, একইভাবে সার্ভারের কাছ থেকে প্রাপ্ত প্রতিক্রিয়াতে কন্টেন্ট-টাইপ শিরোনামও থাকতে পারে যাতে সার্ভারটি কী পাঠাচ্ছে তা উল্লেখ করে:
==============================
নমুনা প্রতিক্রিয়া:
HTTP/1.1 201 Created
Content-Type: application/xml
<<other headers>>
<order id="233">
<link rel="self" href="http://example.com/orders/133"/>
<total>$199.02</total>
<date>December 22, 2008 06:56</date>
...
</order>
==============================
dataTypeপ্রত্যাশার প্রতিক্রিয়াটির ফর্ম্যাট নির্দিষ্ট করে। এটি হেডার গ্রহণের সাথে সম্পর্কিত। জিকুয়ারি প্রতিক্রিয়ার সামগ্রী-প্রকারের ভিত্তিতে এটি নির্ধারণের চেষ্টা করবে।==============================
নমুনা অনুরোধ:
GET /someFolder/index.html HTTP/1.1
Host: mysite.org
Accept: application/xml
<<other headers>>
==============================
উপরের অনুরোধটি সার্ভার থেকে এক্সএমএল প্রত্যাশা করছে।
আপনার প্রশ্ন সম্পর্কে,
contentType: "application/json; charset=utf-8",
dataType: "json",
এখানে আপনি ইউটিএফ 8 অক্ষর সেট ব্যবহার করে জসন ডেটা প্রেরণ করছেন এবং আপনি সার্ভার থেকে জেসন ডেটা প্রত্যাশা করছেন। ডেটা টাইপের জন্য জিকুয়েরি ডক্স অনুসারে,
জসন প্রকারটি আনীত ডেটা ফাইলটিকে জাভাস্ক্রিপ্ট অবজেক্ট হিসাবে বিশ্লেষণ করে এবং ফলাফলের ডেটা হিসাবে নির্মিত অবজেক্টটিকে ফেরত দেয়।
সুতরাং সাফল্যের হ্যান্ডলারে আপনি যা পান তা হ'ল যথাযথ জাভাস্ক্রিপ্ট অবজেক্ট (জিকুয়ারি আপনার জন্য জসন বস্তুকে রূপান্তর করে)
যেহেতু
contentType: "application/json",
dataType: "text",
এখানে আপনি জসন ডেটা প্রেরণ করছেন, যেহেতু আপনি জিকুয়েরি ডক্স অনুসারে এনকোডিংয়ের কথা উল্লেখ করেননি,
যদি কোনও চরসেট নির্দিষ্ট না করা থাকে তবে সার্ভারের ডিফল্ট চরসেট ব্যবহার করে ডেটা সার্ভারে স্থানান্তরিত হবে; আপনার অবশ্যই এটি সার্ভারের দিকে যথাযথভাবে ডিকোড করুন।
এবং যেহেতু ডেটা টাইপটি পাঠ্য হিসাবে নির্দিষ্ট করা হয়েছে, তাই আপনি যা সাফল্য হ্যান্ডলারে পেয়েছেন তা সরল পাঠ্য, ডাটা টাইপের জন্য ডক্স অনুসারে,
পাঠ্য এবং এক্সএমএল প্রকারগুলি কোনও প্রক্রিয়াজাতকরণ ছাড়াই ডেটা ফেরত দেয়। ডেটা কেবল সাফল্য হ্যান্ডলারের হাতে দেওয়া হয়
অনুযায়ী ডক্স :
"json": প্রতিক্রিয়াটিকে JSON হিসাবে মূল্যায়ন করে এবং একটি জাভাস্ক্রিপ্ট অবজেক্ট প্রদান করে। JQuery 1.4 এ JSON ডেটা কঠোরভাবে পার্স করা হয়েছে; যে কোনও ত্রুটিযুক্ত জেএসওএন প্রত্যাখ্যান করা হয় এবং একটি বিশ্লেষণ ত্রুটি নিক্ষেপ করা হয়। (সঠিক JSON ফর্ম্যাটিংয়ের আরও তথ্যের জন্য json.org দেখুন))"text": একটি সরল পাঠ্য স্ট্রিং।আপনি এক সাথে দুটি এপিআই কল করলে jQuery Ajax লোডার ভাল কাজ করে না। এই সমস্যাটি সমাধান করার জন্য আপনাকে isAsyncএজ্যাক্স সেটিংয়ের সম্পত্তি ব্যবহার করে একের পর এক API গুলি কল করতে হবে । আপনার সেটিংসে কোনও ত্রুটি না ঘটানো উচিত তাও নিশ্চিত করতে হবে। অন্যথায়, লোডার কাজ করবে না। যেমন অপরিজ্ঞাপিত সামগ্রী-প্রকার, POST / PUT / DELETE / GET কলের জন্য ডেটা-টাইপ।