JS部份:
/*异步执行后台程序*/
function AjaxData(d) {
$.ajax({
type: d.type,
url: d.url,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: d.data,//Json
success: function (data) {
if (typeof (d.callback)) {
d.callback(true, data)
}
},
error: function (err) {
if (typeof (d.callback)) {
d.callback(false, err.responseText)
}
}
});
}
调用JS部份:
AjaxData({
"type": "Post",
"url": "/API/DataHandler.ashx",
"data": { "type": "AddCollector", "id": uid,"title":title },
"callback": RenderAddCollector
})
ashx后台代码:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string t = context.Request["type"];
switch (t)
{
case "GetCollector":
GetCollector(context);
break;
case "AddCollector":
AddCollector(context);
break;
}
}
问题描述:
当请求方式type:"GET"时,string t = context.Request["type"]; 可以正常获取参数值,而采用Post时,得到的值永远是null,开始怀疑Post 方式不支持JSON格式,后尝试将以下两项注释,再测试可正常获取。
contentType: "application/json; charset=utf-8",
dataType: "json",
百度一下得出结论:Post时,request[]不支持JSON,将下面这行删除,则get 、Post 都能支持,验证有效!有待考证具体原因。
contentType: "application/json; charset=utf-8",