通过Jquery的ajax方式来提交相应的数据,原以为是个很简单的方式,却不想折腾了好久
这个东西我不知道是不是 jquery 的一个bug 搞了N久哦
function MyService(id1, param) {
var _json = jQuery.param({ "code": "blank", "id": "20130209" });
var request = $.ajax({
url: "../ashx/blankService.ashx",
type: "POST",
async: false,
data: _json, //不能直接写成 {id:"123",code:"tomcat"}
dataType: "json",
// contentType: "charset=utf-8",
cache: false,
success: function (r, textStatus) {
alert(r.id + r.datetime);
},
error: function (XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.readyState); }
});
alert(request.responseText);
}
ashx
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/json;";
string id = context.Request["id"];
string temp = "\"datetime\":\"" + DateTime.Now.ToString("G") + "\"";
if (!string.IsNullOrEmpty(id))
{
temp += ",\"id\":\"" + id + "\"";
}
context.Response.Write("{" + temp + "}");
}
//......
}
其实代码很简单,问题就是得不到想要的结果
首先这个一定不能要 contentType: "application/json;charset=utf-8" 网上有资料说需要这个,要了结果就是出不来,可能是我断章取义了,只看一部分,就下结论,着急回家过年了,有点晕吧........
其次了,data: strjson,这个不能把 { "name": "china", "id": "20130209"} 直接写在data后面,需要jQuery.param 一下,但是$.post(....)是不要的,什么感觉?是不是蛋痛了........
还有一点 jsons数据不能单引号,只能是双引号。蛋痛也没用,必须的,所谓的规范。
这些个了内容,都是从网上找了N多的文章才搞定。虽是原创,但是综合了,参考了,写在这里只是为了记录一下而已,让自己更慢的忘记。
明天就过年了,公司没有放假,却允许回家了,这样很好,还低调.......