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您的调用JSON.Stringify,但RData尚未声明(因此为 null 属性)。

更新

根据您的最后评论,我会说这是 JSON 格式问题。当您尝试手动构建您在解决方案中部分执行的 JSON 对象时,通常会发生这种情况。我会将您的代码更改为:

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