繁体   English   中英

从JS调用ASP.NET页面并发送响应

[英]Calling ASP.NET page from a JS and sending Response

我有一个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&amp;userID=18" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZLyq7A39QtHu0Ngft6E/6ZwTABk29noGDsoP6FKK6UIo" /> </div> <div> </div> </form> </body> </html>

但是我想要的只是JSON响应,而没有页面代码。 我怎样才能做到这一点? 可能吗?

您是否曾尝试在初始请求中将返回数据类型指定为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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM