我有一个JS脚本:
$.ajax({
type: "GET",
url: ServiceAddress + "/Service.aspx?action=LoadRandomImagePath&userID=" + USER_ID,
success: function (result) {
if (result.LoadRandomImagePathResult.ID != 0) {
//something
}
调用Service.aspx时:
Response.Write(svc.LoadRandomImagePath(int.Parse(Request.QueryString["userID"])));
svc.LoadRandomImagePath返回JSON并将其写入Response。
我的问题如下。 JS方面的结果是Service.aspx的完整代码:
{JSON HERE}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title> </title></head> <body> <form method="post" action="Service.aspx?action=LoadRandomImagePath&userID=18" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZLyq7A39QtHu0Ngft6E/6ZwTABk29noGDsoP6FKK6UIo" /> </div> <div> </div> </form> </body> </html>
但我想要的只是JSON响应,没有页面代码。我怎样才能做到这一点?有可能吗?
答案 0 :(得分:1)
您是否尝试在初始请求中将返回数据类型指定为JSON?
$.ajax({
type: "GET",
dataType: "json",
url: ServiceAddress + "/Service.aspx?action=LoadRandomImagePath&userID=" + USER_ID,
success: function (result) {
if (result.LoadRandomImagePathResult.ID != 0) {
//something
}
此外,您还需要清除已写入的内容并更改JSON页面的数据类型:
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(svc.LoadRandomImagePath(int.Parse(Request.QueryString["userID"])));
Response.End();