我正在使用Jquery Ajax函数从html页面发送数据,&我正在用C#在后端阅读它。
当我使用Get时,数据已成功发送,但当我切换到Post时,后端的数据值为空。
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",
它有效。
答案 0 :(得分: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),
...
});