Jquery Ajax调用返回页面源代码作为响应而不是json数据
有了VisualStudio,一切都可以在本地运行,但当我在IIS上托管它时,问题就出现了。我在chrome的Network标签下进行了检查,得到的响应是页面的源代码,而不是json字符串,这会导致一个错误“出乎意料的是,死亡的黄屏可能正在返回。您是否有任何错误日志记录,或者查看了返回内容的实际内容?请使用firebug或任何其他客户端开发工具检查您发布的json。检查地址和json格式。您使用的是哪个版本的ASP.NET?如果是4.0或更高版本,我建议不要使用,而是给你的文本框一个clientMode“Static”。同意Jason的观点。您可以删除Jquery Ajax调用返回页面源代码作为响应而不是json数据,jquery,asp.net,ajax,json,iis,Jquery,Asp.net,Ajax,Json,Iis,有了VisualStudio,一切都可以在本地运行,但当我在IIS上托管它时,问题就出现了。我在chrome的Network标签下进行了检查,得到的响应是页面的源代码,而不是json字符串,这会导致一个错误“出乎意料的是,死亡的黄屏可能正在返回。您是否有任何错误日志记录,或者查看了返回内容的实际内容?请使用firebug或任何其他客户端开发工具检查您发布的json。检查地址和json格式。您使用的是哪个版本的ASP.NET?如果是4.0或更高版本,我建议不要使用,而是给你的文本框一个client
数据类型:“json”
,jQuery不会抛出意外的令牌错误,允许您警报(数据)
(查看返回内容)尝试将返回类型更改为列表
,并直接返回结果
变量。IIS应自动为您序列化数据。不需要显式序列化。
$(document).ready(function () {
SearchText();
});
function SearchText() {
$("#<%= txt_supplier.ClientID %>").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
//url: "Default.aspx/GetAutoCompleteData",
url: "AutoComplete.asmx/GetAutoCompleteData",
data: "{'username':'" + document.getElementById('<%= txt_supplier.ClientID %>').value + "'}",
dataType: "json",
success: function (data) {
alert(data.d.toString());
response(data.d);
},
error: function (result) {
alert(result.status + ' ' + result.statusText);
}
});
}
});
}
[WebMethod]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public string GetAutoCompleteData(string username)
{
List<string> result = OldTurtle_BizSuite_EasyHelp2.Pages.Tickets_New.GetAutoCompleteData(username);
return js.Serialize(result);
}