سؤال

ومسج يبدو أن إعطاء خطأ عند محاولة تمرير معلمة أبجدية مثل ذلك:

            $.ajax({
                type: "POST",
                url: "Default.aspx/AjaxTest",
                data: "{eventID:9a5}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    alert(msg.d);
                },
                error: function(e) {
                    alert("Event could not be added to calendar");
                }
            });

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

وأحمد

هل كانت مفيدة؟

المحلول 2

وأنا علمت للتو كيفية حل هذه المشكلة. تبين لي كان الحصول على رسالة خطأ JSON: "JSON غير صالح بدائية". كان لي أن أضيف علامات الاقتباس المفردة إضافية حول معلمة سلسلة بلدي حتى JSON أن نفهم ذلك كان سلسلة عندما كان deserializing ذلك. أضفت علامات الاقتباس المفردة حول البيانات الخاصة بي أبجدية رقمية بحيث JSON أن نفهم أنه كان السلسلة. هذه هي الطريقة التي انتهى قانون بلدي حتى العمل:

        $.ajax({
            type: "POST",
            url: "Default.aspx/AjaxTest",
            data: "{eventID:'9a5'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert(msg.d);
            },
            error: function(e) {
                alert("Event could not be added to calendar");
            }
        });

والشكر كل حال.

نصائح أخرى

ويجب أن لا يكون لك بتمرير البيانات مثل القاموس جافا سكريبت منتظم؟

$.ajax({
...
data: {"eventID": "9a5", "SomeNumericField": 25}
...
});

و(على سبيل المثال:.. لا تضع علامات الاقتباس حول البيانات الخاصة بك وأنا متأكد من أنه ليس من المفترض أن تكون سلسلة من هذا القبيل)

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