سؤال

لقد قررت أن JSON الخاص بي، القادم من الخادم، صالح (إجراء اتصال ajax يدويًا)، ولكني أرغب حقًا في استخدام JQuery.لقد قررت أيضًا أن عنوان URL "للمنشور" الذي يتم إرساله إلى الخادم صحيح باستخدام firebug.ومع ذلك، لا يزال يتم تشغيل رد الاتصال بالخطأ (خطأ في التحليل).لقد حاولت أيضًا نوع البيانات:نص.

هل هناك خيارات أخرى يجب أن أدرجها؟

$(function() {
    $("#submit").bind("click", function() {
        $.ajax({
            type: "post",
            url: "http://myServer/cgi-bin/broker" ,
            datatype: "json",
            data: {'start' : start,'end' : end},
            error: function(request,error){
                alert(error);
            },
            success: function(request) {
                alert(request.length);
            }
        }); // End ajax
    }); // End bind
}); // End eventlistener
هل كانت مفيدة؟

المحلول

إليك بعض الاقتراحات التي سأحاول تجربتها:

1) يجب أن يكون خيار "نوع البيانات" الذي حددته هو "نوع البيانات" (حساس لحالة الأحرف على ما أعتقد)

2) حاول استخدام خيار "contentType" على النحو التالي:

contentType: "application/json; charset=utf-8"

لست متأكدًا من مدى فائدة ذلك لأنه يُستخدم في طلب عنوان url الخاص بمنشورك، وليس في الرد.انظر هذه المقالة لمزيد من المعلومات: http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax(إنه مكتوب لـ asp.net، ولكنه قد يكون قابلاً للتطبيق)

3) تحقق ثلاث مرات من إخراج عنوان url للنشر الخاص بك وقم بتشغيل الإخراج من خلال مدقق JSON فقط للتأكد تمامًا من صحته ويمكن تحليله إلى كائن JSON. http://www.jsonlint.com

أمل أن يساعد بعض من ذلك!

نصائح أخرى

لماذا myResult بدلاً من request?

success: function(request) {
                alert(myResult.length);
            }

معلمة البيانات خاطئة.هنا مثال يعمل:

بيانات:{ فِهرِس:ddl.selectedIndex },

يؤدي هذا إلى إنشاء كائن بخاصية تسمى فهرس بقيمة ddl.selectedIndex.

تحتاج إلى إزالة علامات الاقتباس من سطر معلمة البيانات الخاصة بك

حظا سعيدا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top