JQuery এজাক্স ফাংশনে কনটেন্ট টাইপ এবং ডেটা টাইপের মধ্যে পার্থক্য


123

আমার নিম্নোক্ত জ্যাকুরি কলব্যাক ফাংশন রয়েছে এবং এটি সম্পর্কে আমার যথেষ্ট সন্দেহ রয়েছে (আমি জ্যাকুয়েরি খুব ভাল জানি না):

$("form.readXmlForm").submit(function() {
    // Riferimento all'elemento form che ha scatenato il submit 
    var form = $(this);
    // Variabile che contiene il riferimento al bottone clickato 
    var button = form.children(":first");

    $.ajax({        // Viene eseguita la chiamata AJAX 
        type: "POST", // Tipo di richiesta: POST 
        // URL verso quale viene inviata la richiesta
        url: form.attr("action"),    
        // Dati XML inviati: 
        data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><javaBean><foo>bar</foo><fruit>apple</fruit></javaBean>", 
        // Tipo di media type accettabile dalla response: 
        contentType: "application/xml", 
        dataType: "text", 

        success: function(text) { 
            MvcUtil.showSuccessResponse(text, button); 
        }, 

        error: function(xhr) { 
            MvcUtil.showErrorResponse(xhr.responseText, button); 
        }
    });

আপনি এই ফাংশনটি দেখতে পাচ্ছেন কেবল এই অনুরোধের জন্য প্যারামিটারটি সেট করে ব্যাকএন্ডে একটি এজেএক্স অনুরোধ কার্যকর করুন।

আমি সেট করে রেখেছি যে আমি অনুরোধটি কোনও ইউআরএল-এর দিকে প্রেরণ করছি, অনুরোধটি একটি পোস্টের অনুরোধ এবং আমি যে ডেটা পাঠাচ্ছি তা নিম্নলিখিত স্ট্রিংয়ের মধ্যে রয়েছে:

"Barapple"

আমি বুঝতে মধ্যে পার্থক্য কি কিছু সমস্যার আছে contentType এবং ডাটাটাইপ

আমি মনে করি যে বিষয়বস্তু টাইপটি এইচটিটিপি রেসপন্সে গ্রহণযোগ্য এমন ডেটা প্রকারের নির্দিষ্ট করে, এটি কি ঠিক?

এবং ডেটা টাইপ? কি বললা? এইচটিটিপি অনুরোধে আমি যে ধরণের ডেটা প্রেরণ করছি?

এই ক্ষেত্রে "পাঠ্য" হ'ল কারণ আমি একটি পাঠ্য স্ট্রিংটি প্রেরণ করছি যেটি এক্সএমএল কোডটি প্রকাশিত করে?


JQuery ব্যবহার এবং REST এপিআই ব্যবহারের মধ্যে সামগ্রী-প্রকার এবং ডেটা-ধরণের উদ্দেশ্য কি আলাদা?
সোফাস 1

উত্তর:


172

ডকুমেন্টেশন থেকে :

কন্টেন্টটাইপ (ডিফল্ট: 'অ্যাপ্লিকেশন / এক্স-www-ফর্ম-urlencoded; চরসেট = ইউটিএফ -8')

প্রকার: স্ট্রিং

সার্ভারে ডেটা প্রেরণ করার সময়, এই বিষয়বস্তুর ধরণটি ব্যবহার করুন। ডিফল্টটি হ'ল "অ্যাপ্লিকেশন / x-www-form-urlencoded; চরসেট = ইউটিএফ -8", যা বেশিরভাগ ক্ষেত্রেই ঠিক আছে। যদি আপনি স্পষ্টভাবে content .ajax () তে কোনও সামগ্রী-প্রকারে পাস করেন তবে তা সর্বদা সার্ভারে প্রেরণ করা হবে (কোনও তথ্য প্রেরণ না করা হলেও)। যদি কোনও চরসেট নির্দিষ্ট না করা থাকে তবে সার্ভারের ডিফল্ট চরসেট ব্যবহার করে ডেটা সার্ভারে স্থানান্তরিত হবে; আপনার অবশ্যই এটি সার্ভারের দিকে যথাযথভাবে ডিকোড করুন।

এবং:

ডেটা টাইপ (ডিফল্ট: বুদ্ধিমান অনুমান (এক্সএমএল, জসন, স্ক্রিপ্ট, বা এইচটিএমএল))

প্রকার: স্ট্রিং

আপনি সার্ভার থেকে যে ধরণের ডেটা প্রত্যাশা করছেন। যদি কোনওটি নির্দিষ্ট না করা থাকে তবে jQuery এটির প্রতিক্রিয়াটির MIME প্রকারের ভিত্তিতে নির্ধারণের চেষ্টা করবে (একটি এক্সএমএল মাইমে টাইপ এক্সএমএল দেবে, ১.৪ এ জেএসএন একটি জাভাস্ক্রিপ্ট অবজেক্ট দেবে, ১.৪ স্ক্রিপ্টে স্ক্রিপ্টটি কার্যকর করবে এবং অন্য কিছু হবে) স্ট্রিং হিসাবে ফিরে এসেছে)।

এগুলি মূলত আপনি যা ভেবেছিলেন তার বিপরীতে।


3
এছাড়াও contentTypeহেডার প্রভাবিত করে, dataTypeনা
Viney

83

এখানে চিত্র বর্ণনা লিখুন

ইংরেজীতে:

  • ContentType: সার্ভারে ডেটা প্রেরণ করার সময়, এই বিষয়বস্তুর ধরণটি ব্যবহার করুন। ডিফল্ট হয় application/x-www-form-urlencoded; charset=UTF-8, যা বেশিরভাগ ক্ষেত্রেই ভাল।
  • Accepts: অনুরোধ শিরোনামে প্রেরিত সামগ্রীর ধরণ যা সার্ভারকে জানায় যে এটির প্রতিক্রিয়া কী ধরণের হবে। উপর নির্ভর করে DataType
  • DataType: আপনি সার্ভার থেকে যে ধরণের ডেটা প্রত্যাশা করছেন। যদি কোনওটি নির্দিষ্ট না করা থাকে তবে jQuery প্রতিক্রিয়ার MIME টাইপের ভিত্তিতে এটি নির্ধারণের চেষ্টা করবে। হতে পারে text, xml, html, script, json, jsonp

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