使用$.ajax()调用后台方法,为什么返回的是HTML代码呢???

时间:2021-07-25 23:59:39
这是jQuery ajax:
$(".shiji").click(function () {
                var fileName = $(this).attr("id");
                $.ajax({
                    type: "post",
                    url: "Index.aspx/Existence",
                    data: "{'Name':'"+fileName+"'}",
                    success: function (response, status, xhr) {
                        alert(response);
                    }
                });
            });



后台方法:
 
        [WebMethod]
        public static bool Existence(string Name)
        {
            string fileName = Name + ".doc";
            string path = HttpContext.Current.Server.MapPath(string.Format(@"File\{0}", fileName));  //获取文件所在位置
            if (File.Exists(path))
            {
                return true;
            }
            else
            {
                return false;
            }
        }


页面运行后返回的是这样:
使用$.ajax()调用后台方法,为什么返回的是HTML代码呢???

大神给看看怎么回事?怎么返回的是HTML?应该返回bool值才对呀。

15 个解决方案

#1


指定一下dataType的类型

#2


引用 1 楼 scqlmm 的回复:
指定一下dataType的类型

dataType的类型为json:
$(".shiji").click(function () {
                var fileName = $(this).attr("id");
                $.ajax({
                    type: "post",
                    url: "Index.aspx/Existence",
                    dataType:"json",
                    data: "{'Name':'"+fileName+"'}",
                    success: function (response, status, xhr) {
                        alert(response);
                    }, error: function (response) {
                        alert(response);
                    }
                });

error报错:
使用$.ajax()调用后台方法,为什么返回的是HTML代码呢???

dataType设为tes或HTML的时候
还是返回HTML

#3


你都alert出来了,不是html了,是一个json对象了,你在chrome里面debug一下,看看这个值肯定不是html了

#4


再debug你看看错误是什么,是后台还是前台的错误

#5


你是不是MVC做得啊?
是不是返回了整个视图啊?

#6


引用 5 楼 wuyajungogo 的回复:
你是不是MVC做得啊?
是不是返回了整个视图啊?

不是mvc,是asp.net webform

#7


@枫醉秋
能不能详细的说一下

#8


谷歌浏览器F12 断点 差点变量 你可以顺便百度一下json怎么使用

#9


asp.net的ws要返回json对象需要配置content-type:'application/json';

 $.ajax({  
               type: "POST",  
               dataType: "json",  
                contentType: "application/json; charset=utf-8",  


jQuery asp.net WebService返回JSON

#10


额。。你后台return,Ajax你确定可以接收到? 使用$.ajax()调用后台方法,为什么返回的是HTML代码呢???

#11


你这是你调用方法的那个页面的heml页码,,你没有指定传输数据的类型,给你一个标准的格式
$.ajax({
 type:"pose",
 datatype:"json",
contentType:"application/json;charset=utf-8",
url="",
data:"",
success:function(result){
alert(result)//这个是返回的一个对象
alert(result.d)//这个是你需要返回的数据(true  或者  false)
}
});

#12


根据你的问题分析,得出是你的拦截器或者其他方法拦截了你的请求,而没有执行到你请求的方法,而是直接执行了拦截里面的方法,你看看是不是拦截器那里出问题了。

#13


成功的方法里只写一个参数试试。
或者你可以alert每一参数的值。求采纳

#14


你请求(request)了这个页面或者你响应(response)了这个页面,看看你返回的也页面啥页面也许你就找到问题了。

#15


引用 14 楼 baidu_37312105 的回复:
你请求(request)了这个页面或者你响应(response)了这个页面,看看你返回的也页面啥页面也许你就找到问题了。
说些屁话

#1


指定一下dataType的类型

#2


引用 1 楼 scqlmm 的回复:
指定一下dataType的类型

dataType的类型为json:
$(".shiji").click(function () {
                var fileName = $(this).attr("id");
                $.ajax({
                    type: "post",
                    url: "Index.aspx/Existence",
                    dataType:"json",
                    data: "{'Name':'"+fileName+"'}",
                    success: function (response, status, xhr) {
                        alert(response);
                    }, error: function (response) {
                        alert(response);
                    }
                });

error报错:
使用$.ajax()调用后台方法,为什么返回的是HTML代码呢???

dataType设为tes或HTML的时候
还是返回HTML

#3


你都alert出来了,不是html了,是一个json对象了,你在chrome里面debug一下,看看这个值肯定不是html了

#4


再debug你看看错误是什么,是后台还是前台的错误

#5


你是不是MVC做得啊?
是不是返回了整个视图啊?

#6


引用 5 楼 wuyajungogo 的回复:
你是不是MVC做得啊?
是不是返回了整个视图啊?

不是mvc,是asp.net webform

#7


@枫醉秋
能不能详细的说一下

#8


谷歌浏览器F12 断点 差点变量 你可以顺便百度一下json怎么使用

#9


asp.net的ws要返回json对象需要配置content-type:'application/json';

 $.ajax({  
               type: "POST",  
               dataType: "json",  
                contentType: "application/json; charset=utf-8",  


jQuery asp.net WebService返回JSON

#10


额。。你后台return,Ajax你确定可以接收到? 使用$.ajax()调用后台方法,为什么返回的是HTML代码呢???

#11


你这是你调用方法的那个页面的heml页码,,你没有指定传输数据的类型,给你一个标准的格式
$.ajax({
 type:"pose",
 datatype:"json",
contentType:"application/json;charset=utf-8",
url="",
data:"",
success:function(result){
alert(result)//这个是返回的一个对象
alert(result.d)//这个是你需要返回的数据(true  或者  false)
}
});

#12


根据你的问题分析,得出是你的拦截器或者其他方法拦截了你的请求,而没有执行到你请求的方法,而是直接执行了拦截里面的方法,你看看是不是拦截器那里出问题了。

#13


成功的方法里只写一个参数试试。
或者你可以alert每一参数的值。求采纳

#14


你请求(request)了这个页面或者你响应(response)了这个页面,看看你返回的也页面啥页面也许你就找到问题了。

#15


引用 14 楼 baidu_37312105 的回复:
你请求(request)了这个页面或者你响应(response)了这个页面,看看你返回的也页面啥页面也许你就找到问题了。
说些屁话