AJAX调用不了后台

问题描述

<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。那程序肯定没问题

时间: 2024-09-20 08:56:30

AJAX调用不了后台的相关文章

编程语言学习-编程 ajax 调用后台方法

问题描述 编程 ajax 调用后台方法 //15秒倒计时 var start = 15; var step = -1; function count() { document.getElementById("DaoJiShi").innerHTML = start; start += step; if (start < 0) start = 15; setTimeout("count()", 1000); } window.onload = count; 这么

jquery.Ajax()方法调用Asp.Net后台的方法解析

 本篇文章主要是对jquery.Ajax()方法调用Asp.Net后台的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. 先来个简单的实例热热身吧.   1.无参数的方法调用 asp.net code:    代码如下: using System.Web.Script.Services;      [WebMethod]    public static string SayHello()    {   

net-在Web用户控件ascx文件,怎么使用ajax调用后台方法并传参?

问题描述 在Web用户控件ascx文件,怎么使用ajax调用后台方法并传参? $.ajax({ type: "Post", url: "SetWidget.ascx/GetStr", data: "{'str':'我是','str2':'XXX'}", contentType: "application/json; charset=utf-8", dataType: "json", success: fun

ajax调用后台方法,求大神

问题描述 ajax调用后台方法,求大神 写了一段ajax的代码,原意是打算,当选择句子时,用ajax将选中的句子传回后台,当ajax回传成功时,执行后台方法BTCompare.但是现在页面加载的时候直接执行了BTCompare,反而点击按钮触发ajax的时候不执行 //选取句子,点击按钮,传送回后台 function ajaxSend() { $('#btnSend').attr('disabled' true) $.ajax({ type: ""Post"" ur

为什么Ajax调用后台Action,结果返回回调函数时,在js里没有进入回调函数?

问题描述 我在js里面通过ajax调用一个action,然后返回结果给回调函数,但是程序始终不进入回调函数callback,请问问题出在哪里了?<script type="text/javascript">function chooseFile(obj){$('uploadpictureForm').action = "${pageContext.request.contextPath}/page/uploadPicture.action";$('upl

ASP.NET中JQuery+AJAX调用后台_实用技巧

做订餐系统手机端时,遇到一个问题,实现登录功能时,我要调用后台的方法进行验证和判断.我们应用的是webForm进行开发的,正常情况下只要绑定按钮的方法,前后台对应就可以实现.但是,手机端应用MUI样式之后,就不适用于这种情况了.基于这个问题,我们使用JQuery+Ajax技术,其实MUI中也自带ajax技术.  实现过程: webForm代码:       function login() { var name = document.getElementById("username")

基于JavaScript如何实现ajax调用后台定义的方法_jquery

由于ajax的独特优势,使得它在当前大量网站得到了广泛的应用,下面就介绍一下ajax如何调用后台定义的函数,虽然比较简单,不过希望能够给初学者带来一定的帮助,代码如下: 1.首先我们先创建一个antzone.aspx页面. 2.在它的cs文件中创建如下函数: public static string mytest(string first, string second) { return return first+second; } 2.html代码如下: <form id="myform

jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)_jquery

在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下WebMethod方法的用法 1.修饰符主要用public static修饰 2.方法前面加上[WebMethod]属性表明这是WebMethod方法 3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面. 4.当后台页面返回数据后

ajax调用后台:AJAX调用慎用POST方式,有严重的问题或者BUG

这个问题只存在客户端是IE或IE内核的情况,但是你无法控制客户端使用什么浏览器,所以仍然会给你的应用造成很大的性能问题. 我们先说现象: 服务端:我们只用一个静态的HTML页面ok.html,内容只返OK. 然后我们写一个ajax调用的html在客户端访问: <script> function send_request(method,url,param) {     http_request = false;     if (window.XMLHttpRequest) {         h