问题描述
<scriptsrc="js/jquery.js"></script><scriptlanguage="javascript">$(document).ready(function(){$("#bt1").click(function(){$.ajax({type:"Post",url:"Jquery2/test",contentType:"application/json;charset=utf-8",dataType:"json",success:function(data){//返回的数据用data.d获取内容alert("ssss");},error:function(err){alert("tttt");}});})})</script>各位大神帮小弟看看为什么调用不了后台,程序一直走ERR部分,后台进都不进去。这是怎么回事啊
解决方案
解决方案二:
先将你的contenttype之类的先注销,只保留最基本的参数,还有F12看下到底有没有发起请求
解决方案三:
引用1楼starfd的回复:
先将你的contenttype之类的先注销,只保留最基本的参数,还有F12看下到底有没有发起请求
注销了调试JS它不进test方法而是直接往下走,直接走到error里面去了。
解决方案四:
URL确定没问题吗?F12调试,监视下网络,看下请求的地址是不是你想要请求的地址,我目测少了一个"/"
解决方案五:
引用3楼u011144022的回复:
URL确定没问题吗?F12调试,监视下网络,看下请求的地址是不是你想要请求的地址,我目测少了一个"/"
没问题啊http://localhost:9655/Jquery2.aspx监视下的URL我用相对路径和绝对路径都试过都不行。不会去调用头都大了。
解决方案六:
你说你的地址是jquery2.aspx为啥你的url是jquery2/test,你这个地址用了route了?
解决方案七:
引用5楼starfd的回复:
你说你的地址是jquery2.aspx为啥你的url是jquery2/test,你这个地址用了route了?
肯定不是url问题我Jquery2.aspxJquery2.aspx,cs~/Jquery2.aspx等等全都试过都不行,不去调用方法会不会和我的电脑有关系?
解决方案八:
ajax调用,如果Jquery2/test方法没进入,那么应该是url问题。改成/Jquery/test试试看。
解决方案九:
引用4楼qq_32249177的回复:
Quote: 引用3楼u011144022的回复:
URL确定没问题吗?F12调试,监视下网络,看下请求的地址是不是你想要请求的地址,我目测少了一个"/"没问题啊http://localhost:9655/Jquery2.aspx监视下的URL我用相对路径和绝对路径都试过都不行。不会去调用头都大了。
如果是webform,url应该是xxx.aspx,如果是mvc,url应该是/控制器/方法,如果没能进入后来方法说明url有问题,或者你在global文件里改过路由地址?
解决方案十:
引用7楼hanjun0612的回复:
ajax调用,如果Jquery2/test方法没进入,那么应该是url问题。改成/Jquery/test试试看。
试过了也不行,我各种方法都试了都不行,真的很莫名其妙,后台掉前台的JS就可以的前台调后台怎么都掉不进去。
解决方案十一:
引用8楼u011144022的回复:
Quote: 引用4楼qq_32249177的回复:
Quote: 引用3楼u011144022的回复:
URL确定没问题吗?F12调试,监视下网络,看下请求的地址是不是你想要请求的地址,我目测少了一个"/"没问题啊http://localhost:9655/Jquery2.aspx监视下的URL我用相对路径和绝对路径都试过都不行。不会去调用头都大了。
如果是webform,url应该是xxx.aspx,如果是mvc,url应该是/控制器/方法,如果没能进入后来方法说明url有问题,或者你在global文件里改过路由地址?
我这是测试用的只是创建了一个web窗体根本没修改过global文件,就是一个最简单的webform就是很奇怪为什么AJAX调用不过去现在项目里我还是用回发方式先做着的不涉及后台的我用JS来做,现在想用AJAX做,但是怎么都调用不过去。
解决方案十二:
引用9楼qq_32249177的回复:
Quote: 引用7楼hanjun0612的回复:
ajax调用,如果Jquery2/test方法没进入,那么应该是url问题。改成/Jquery/test试试看。试过了也不行,我各种方法都试了都不行,真的很莫名其妙,后台掉前台的JS就可以的前台调后台怎么都掉不进去。
这个问题可能有很多原因造成。首先,简化ajax就直接$.ajax({type:"Post",url:"Jquery2/test",dataType:"json",success:function(data){//返回的数据用data.d获取内容alert("ssss");},error:function(err){alert("tttt");}});
然后看一下由于你是post,所以后台action增加了[httpPost]没有?包括json参数格式正确吗?我建议你可以先用get请求,调一个test的action。确定url没有问题。然后在去看是不是httppost的问题还是json的参数问题。
解决方案十三:
引用10楼qq_32249177的回复:
Quote: 引用8楼u011144022的回复:
Quote: 引用4楼qq_32249177的回复:
Quote: 引用3楼u011144022的回复:
URL确定没问题吗?F12调试,监视下网络,看下请求的地址是不是你想要请求的地址,我目测少了一个"/"没问题啊http://localhost:9655/Jquery2.aspx监视下的URL我用相对路径和绝对路径都试过都不行。不会去调用头都大了。
如果是webform,url应该是xxx.aspx,如果是mvc,url应该是/控制器/方法,如果没能进入后来方法说明url有问题,或者你在global文件里改过路由地址?
我这是测试用的只是创建了一个web窗体根本没修改过global文件,就是一个最简单的webform就是很奇怪为什么AJAX调用不过去现在项目里我还是用回发方式先做着的不涉及后台的我用JS来做,现在想用AJAX做,但是怎么都调用不过去。
你是webform?global也没修改过?那么你url:"Jquery2/test",用不了啊。你至少也是Jquery2/test.aspx。还有如果你是ajax调用asp.net后台的方法,那么后台的方法应该要增加[webmethod]并且方法要static,貌似我建议你还是ajax调用handler的一般处理程序吧。你可以看看这篇帖子http://www.cnblogs.com/acles/articles/2385648.html
解决方案十四:
引用10楼qq_32249177的回复:
Quote: 引用8楼u011144022的回复:
Quote: 引用4楼qq_32249177的回复:
Quote: 引用3楼u011144022的回复:
URL确定没问题吗?F12调试,监视下网络,看下请求的地址是不是你想要请求的地址,我目测少了一个"/"没问题啊http://localhost:9655/Jquery2.aspx监视下的URL我用相对路径和绝对路径都试过都不行。不会去调用头都大了。
如果是webform,url应该是xxx.aspx,如果是mvc,url应该是/控制器/方法,如果没能进入后来方法说明url有问题,或者你在global文件里改过路由地址?
我这是测试用的只是创建了一个web窗体根本没修改过global文件,就是一个最简单的webform就是很奇怪为什么AJAX调用不过去现在项目里我还是用回发方式先做着的不涉及后台的我用JS来做,现在想用AJAX做,但是怎么都调用不过去。
建个Handler试试,我没调用过aspx文件,都是直接调Handler
解决方案十五:
引用11楼hanjun0612的回复:
Quote: 引用9楼qq_32249177的回复:
Quote: 引用7楼hanjun0612的回复:
ajax调用,如果Jquery2/test方法没进入,那么应该是url问题。改成/Jquery/test试试看。试过了也不行,我各种方法都试了都不行,真的很莫名其妙,后台掉前台的JS就可以的前台调后台怎么都掉不进去。
这个问题可能有很多原因造成。首先,简化ajax就直接$.ajax({type:"Post",url:"Jquery2/test",dataType:"json",success:function(data){//返回的数据用data.d获取内容alert("ssss");},error:function(err){alert("tttt");}});
然后看一下由于你是post,所以后台action增加了[httpPost]没有?包括json参数格式正确吗?我建议你可以先用get请求,调一个test的action。确定url没有问题。然后在去看是不是httppost的问题还是json的参数问题。
<scriptlanguage="javascript">$(document).ready(function(){//$("#bt1").click(function(){$.ajax({method:"post",url:"Jquery2.aspx/test",//contentType:"application/json;charset=utf-8",dataType:"json",success:function(data){//返回的数据用data.d获取内容},error:function(err){alert("tttt");}});//})})后台publicstaticstringtest(){return"aaa";}这样简洁了还是不行只会跑去error里面,根本不去后台
解决方案:
引用14楼qq_32249177的回复:
Quote: 引用11楼hanjun0612的回复:
Quote: 引用9楼qq_32249177的回复:
Quote: 引用7楼hanjun0612的回复:
ajax调用,如果Jquery2/test方法没进入,那么应该是url问题。改成/Jquery/test试试看。试过了也不行,我各种方法都试了都不行,真的很莫名其妙,后台掉前台的JS就可以的前台调后台怎么都掉不进去。
这个问题可能有很多原因造成。首先,简化ajax就直接$.ajax({type:"Post",url:"Jquery2/test",dataType:"json",success:function(data){//返回的数据用data.d获取内容alert("ssss");},error:function(err){alert("tttt");}});
然后看一下由于你是post,所以后台action增加了[httpPost]没有?包括json参数格式正确吗?我建议你可以先用get请求,调一个test的action。确定url没有问题。然后在去看是不是httppost的问题还是json的参数问题。
<scriptlanguage="javascript">$(document).ready(function(){//$("#bt1").click(function(){$.ajax({method:"post",url:"Jquery2.aspx/test",//contentType:"application/json;charset=utf-8",dataType:"json",success:function(data){//返回的数据用data.d获取内容},error:function(err){alert("tttt");}});//})})后台publicstaticstringtest(){return"aaa";}这样简洁了还是不行只会跑去error里面,根本不去后台
你不是mvc,也没修改过global文件,所以不能使用url:"Jquery2.aspx/test",这样的路由规则。至少也是url:"Jquery2.aspx/test.aspx"
解决方案:
引用14楼qq_32249177的回复:
Quote: 引用11楼hanjun0612的回复:
Quote: 引用9楼qq_32249177的回复:
Quote: 引用7楼hanjun0612的回复:
ajax调用,如果Jquery2/test方法没进入,那么应该是url问题。改成/Jquery/test试试看。试过了也不行,我各种方法都试了都不行,真的很莫名其妙,后台掉前台的JS就可以的前台调后台怎么都掉不进去。
这个问题可能有很多原因造成。首先,简化ajax就直接$.ajax({type:"Post",url:"Jquery2/test",dataType:"json",success:function(data){//返回的数据用data.d获取内容alert("ssss");},error:function(err){alert("tttt");}});
然后看一下由于你是post,所以后台action增加了[httpPost]没有?包括json参数格式正确吗?我建议你可以先用get请求,调一个test的action。确定url没有问题。然后在去看是不是httppost的问题还是json的参数问题。
<scriptlanguage="javascript">$(document).ready(function(){//$("#bt1").click(function(){$.ajax({method:"post",url:"Jquery2.aspx/test",//contentType:"application/json;charset=utf-8",dataType:"json",success:function(data){//返回的数据用data.d获取内容},error:function(err){alert("tttt");}});//})})后台publicstaticstringtest(){return"aaa";}这样简洁了还是不行只会跑去error里面,根本不去后台
你是webform项目,/控制器/方法的路由方式是mvc里使用的,你这个url怎么也应该是.aspx为后缀的
解决方案:
如果你需要调用aspx文件中的方法,后台代码应该这么写usingSystem.Web.Services;//引入命名空间[WebMethod]publicstaticstringtext(){return"HelloAjax!";}
解决方案:
引用17楼u011144022的回复:
如果你需要调用aspx文件中的方法,后台代码应该这么写usingSystem.Web.Services;//引入命名空间[WebMethod]publicstaticstringtext(){return"HelloAjax!";}
这篇文章可以看下http://www.cnblogs.com/fanyong/p/3463701.html
解决方案:
url应该是jquery.aspxpage_load(){test();}publicvoidtest(){response.clear();response.write("HelloWorld");response.End();}
解决方案:
你用浏览器调试工具看下有没有404...建立个ashx文件,然后把url改成ashx的url
解决方案:
ajax调用一般用ashx文件比较好吧~也简单
解决方案:
前台Ajax可以调用后台ASP.NET服务方法,MVC的话是route地址
解决方案:
在浏览器地址栏里请求一下URL就好了么、那里的问题一下就看出来了url:"Jquery2/test"
解决方案:
没有办法进入,一般是路径和参数有关
解决方案:
err的回调有多个参数,把它们全部展示出来,会带给你更多信息
解决方案:
你POST的是什么?post没有代任何数据吗?如果是mvc。你这样post,路由能找到吗?
解决方案:
引用25楼hemowolf的回复:
err的回调有多个参数,把它们全部展示出来,会带给你更多信息
这么多层楼只有这句才算说到点子上了
解决方案:
一个url,翻来复去去“猜”。一会儿Jquery2/test,一会儿Jquery2.aspx,一会儿Jquery2.aspx,cs,一会儿~/Jquery2.aspx,一会儿/Jquery/test,一会儿Jquery2.aspx/test。asp.netweb跟asp.netmvc都可以使用相同的路由方式,不是什么“只有asp.netmvc才能路由”的。但是这些对你来说都“高大上”了。你当务之急,是重学asp.net,知道自己写的页面怎么打开访问。然后学会贴出调试器中所跟踪的浏览器访问服务器的Request和Response消息,这样能避免误导自己。不要考虑什么“Ajax”。如果实在着急,就花钱请人教你asp.net。
解决方案:
引用2楼qq_32249177的回复:
Quote: 引用1楼starfd的回复:
先将你的contenttype之类的先注销,只保留最基本的参数,还有F12看下到底有没有发起请求注销了调试JS它不进test方法而是直接往下走,直接走到error里面去了。
人家是让你使用浏览器端的调试工具。不是你的asp.net。
解决方案:
你的后台代码拿出来看看
解决方案:
引用楼主qq_32249177的回复:
各位大神帮小弟看看为什么调用不了后台,程序一直走ERR部分,后台进都不进去。这是怎么回事啊
是URL的问题。如果URL地址是localhost那就一直进error把localhost改成你本机IP最好换外网IP另外在error里alert(data.status+"-"+data.readyState)看看值是多少如果是200和4。那程序肯定没问题