質問

JQueryは、次のように英数字パラメーターを渡そうとするとエラーが発生するようです:

            $.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は、それを逆シリアル化するときに文字列であることを認識しました。 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");
            }
        });

とにかくありがとう。

他のヒント

通常のJavascriptディクショナリのようにデータを渡しませんか?

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

(例:データを引用符で囲まないでください。そのような文字列であってはならないはずです。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top