3

Jquery Ajax 関数を使用して HTML ページからデータを送信しています。バックエンドで C# を使用してデータを読み取っています。

Get を使用した場合は正常にデータが送信されましたが、Post に切り替えた場合、バックエンドでデータ値が null になっています。

HTML:

<form onsubmit="AddData();>
<input type="submit"value="Submit" />
</form>

Javascript:

function AddData() {
            var RData = GetRData();
            var postData = { 'Function': "AddData", 'RData': JSON.stringify(RData) };
            $.ajax(
            {
                type: "POST",
                url: "/Services/GetRData.aspx",
                data: postData,
                contentType: "application/json; charset=utf-8",
                dataType: "jsonp",
                jsonp: 'jsoncallback',
                success: function (result) { 
                AddClubCallBackFunction(result) },
                error: function (msg) {
                    alert('Sorry, an error occured while adding your Data!');
                }
            });
        }

C#:

string FunctionName =Request["Function"]; //null
string RData = Request.Form["RData"]; //null

それで、私は何を間違っていますか?どうすれば修正できますか?

アップデート:

削除しただけ

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

そしてそれはうまくいきました。

4

1 に答える 1

1

上記のコードが実行しているものとまったく同じであると仮定すると、タイプミスがあるように見えます。

var Data = GetRData();
var postData = { 'Function': "AddData", 'RData': JSON.stringify(RData) };

あなたの変数は、宣言されていないData呼び出しです(したがって、nullプロパティ)。JSON.StringifyRData

アップデート

あなたの最後のコメントに基づいて、それは JSON フォーマットの問題だと思います。これは通常、ソリューションで部分的に行っている JSON オブジェクトを手動で構築しようとしたときに発生する可能性があります。コードを次のように変更します。

var rdata = GetRData();
var postData = { Function: 'AddData', RData: JSON.stringify(rdata) };
$.ajax({
    ...
    data: JSON.stringify(postData),
    ...
});
于 2013-02-11T12:26:48.200 に答える