我要拔掉我剩下的头发,所以如果你知道问题可能是什么,请帮助我......谢谢。我所有的谷歌搜索也没有得到回报。
首先,我使用 jquery-1.7.2.min.js 和 ASP.net 2.0 web 表单。
我正在尝试使用 jquery 进行 ajax 调用,但不断收到语法错误/解析错误消息。我尝试了许多不同的方法,但是当我将 dataType 设置为 json 时,它们都会导致错误。
这是我所拥有的:
$.ajax({
type: "POST",
url: "UserList.aspx/GetTestJson",
data: {}, //have also tried "{}" and other options such as removing the line
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data, textStatus, jqXHR){
alert('success');
},
//Using below instead of above makes no difference either
//success: function(data){
// alert('success');
//},
error: function(jqXHR, textStatus, errorThrown){
alert('errorThrown: ' + errorThrown);
}
});
和aspx页面方法:
[WebMethod]
public static string GetTestJson()
{
return "Hello My World";
}
我也尝试过设置 Web 服务,但得到相同的结果。返回的响应似乎是页面的完整 html 或来自 Web 服务的 xml,因为我将 dataType 设置为 json,所以无法成功解析它。如果是这种情况,如何将响应设置为仅返回 json?
这是我在没有运气的情况下尝试过的其他东西:
[WebMethod]
public static string GetTestJson()
{
HttpContext.Current.Response.ContentType = "application/json";
string json = JavaScriptConvert.SerializeObject("Hello My World");
return json;
}
我通过 jQuery 收到的错误消息:
errorThrown.message = "Syntax error"
errorThrown.number = -2146827286
errorThrown.name = "SyntaxError"
textStatus = "parseerror"
jqXHR.status = 200
jqXHR.statusText = "OK"
jqXHR.readyState = 4
jqXHR.responseText = (the complete html of the page)
有什么想法或建议吗?
谢谢