شرح - jQuery-كيفية وضع JSON عبر Ajax؟



jquery ajax data (2)

أعتقد أن البيانات يجب أن تكون سلسلة. يتم تحويل الكائنات إلى سلاسل الاستعلام وهو ما تراه هنا.

يمكنك استخدام الأسلوب JSON.stringify(obj) لتحويل الكائن إلى سلسلة. يتوفر رمز كائن JSON من: https://github.com/douglascrockford/JSON-js/blob/master/json2.js .

بدلاً من ذلك ، فقط قم بتمرير الرمز الذي تستخدمه لإنشاء الكائن كسلسلة حرفية ، ولكن أتخيل أن هذا مجرد مثال وستحتاج إلى تشفير بعض الكائنات التي قمت بإنشائها بالفعل.

أحاول وضع بعض البيانات المنسقة لـ JSON عبر Ajax مع jQuery إلى خادم. تبدو شفرتي كالتالي:

$.ajax({
    type: "PUT",
    url: myURL,
    contentType: "application/json",
    data: {"data": "mydata"}
});

ولكن من جانب الخادم ، أتلقى data=mydata سلسلة data=mydata ، بدلاً من JSON المتوقع. يخبرني Firebug نفس الشيء.

أين الخطأ؟


Answer #1

إذا كان عليك دائمًا إرسال JSON في التطبيق الخاص بك ، فيمكنك فقط تنفيذ هذا في مكان ما في $.ajax الخاصة بك ، ثم استخدام $.ajax استدعاء افتراضي كما في المثال الخاص بك ، وسيتم دائمًا إجراء تسلسل كسلسلة JSON بدلاً من سلسلة الاستعلام الافتراضية في Ajax .

هنا يمكنني استخدام كائن JSON المذكور أعلاه:

$.ajaxSetup({
    contentType : 'application/json',
    processData : false
});
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
    if (options.data){
        options.data=JSON.stringify(options.data);
    }
});




json