问题:vs2003 .net1.1版本。jquery ajax提交到webservice时报“请求格式无效:application/json;charset=utf-8。”错误
代码:function UpdatePers(){
var j_wait_message_dialog = ShowWaitMessageDialog("保存数据...");
$.ajax({
type: "POST",
url: "RecordWebService.asmx/UpdateRecordPers4",
// data:"{id:"+$('#ipt_id').val()+",content:"+$('#txt_nr').val()+"}",
data:{id:'2'},
dataType: 'json',
contentType: "application/json;charset=utf-8",//有这条报“请求格式无效:application/json;charset=utf-8。”错误,注释掉就正常
success: function(data) {
var re=eval(data);
alert(re.result);
HideWaitMessageDialog(j_wait_message_dialog);
},
error: function(x, e) {
alert(x.responseText);
HideWaitMessageDialog(j_wait_message_dialog);
}
});
}后台:[WebMethod]
public string UpdateRecordPers4(string id)
{
Context.Response.Write( "{\"result\":\""+id+"ok\"}");//这条返回纯json格式数据
//return( "{\"result\":\""+id+"ok\"}");//这条返回的json数据外围包含了xml格式
}
个人疑惑:
1: contentType: "application/json;charset=utf-8",//有这条报“请求格式无效:application/json;charset=utf-8。”错误,注释掉就正常
2:关于webservice返回json语句
Context.Response.Write( "{\"result\":\""+id+"ok\"}");//这条返回纯json格式数据
//return( "{\"result\":\""+id+"ok\"}");//这条返回的json数据外围包含了xml格式,我设置了contentType: "application/json;charset=utf-8",为什么会加xml格式呢?
代码:function UpdatePers(){
var j_wait_message_dialog = ShowWaitMessageDialog("保存数据...");
$.ajax({
type: "POST",
url: "RecordWebService.asmx/UpdateRecordPers4",
// data:"{id:"+$('#ipt_id').val()+",content:"+$('#txt_nr').val()+"}",
data:{id:'2'},
dataType: 'json',
contentType: "application/json;charset=utf-8",//有这条报“请求格式无效:application/json;charset=utf-8。”错误,注释掉就正常
success: function(data) {
var re=eval(data);
alert(re.result);
HideWaitMessageDialog(j_wait_message_dialog);
},
error: function(x, e) {
alert(x.responseText);
HideWaitMessageDialog(j_wait_message_dialog);
}
});
}后台:[WebMethod]
public string UpdateRecordPers4(string id)
{
Context.Response.Write( "{\"result\":\""+id+"ok\"}");//这条返回纯json格式数据
//return( "{\"result\":\""+id+"ok\"}");//这条返回的json数据外围包含了xml格式
}
个人疑惑:
1: contentType: "application/json;charset=utf-8",//有这条报“请求格式无效:application/json;charset=utf-8。”错误,注释掉就正常
2:关于webservice返回json语句
Context.Response.Write( "{\"result\":\""+id+"ok\"}");//这条返回纯json格式数据
//return( "{\"result\":\""+id+"ok\"}");//这条返回的json数据外围包含了xml格式,我设置了contentType: "application/json;charset=utf-8",为什么会加xml格式呢?
按您提示修改后:
return "{\"result\":\""+id+"ok\"}"; data:{"id":"2"},
依然提示:请求格式无效:application/json; charset=UTF-8
如果我将此句"contentType: "application/json;charset=utf-8","注释掉,http Analyzer抓包发现系统会以“Content-Type:application/x-www-form-urlencoded”进行提交,这样返回就能正常。
百思不得其解