
正文
ajax返回的js代码不执行,ajax没有返回值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
js加入ajax代码后就不能运行了,alert也不可以用,本来可以用的函数如send...
错误是最简单、最明了的错误,就是网址错了,所指向的文件或网络应用不存在的意思。你可以直接复制网址到浏览器地址栏访问下就明白了。不是你说地址对就是对的。
success: callback //当请求操作完成数据正确返回时调用callback函数。此处的ajax参数还可以有:complete、success、error。complete是指readystate==4时;success是指state==200时;error是指相应出错或者解析服务器数据出错。//error: function(data){alert(data);} });alert(end);});这样修改一下。
这个原因就是ajax的async设置为false时同步提交。浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。也就是你这个问题beforeSend里面好像没有执行。其实,已经进beforeSend里面了。只是,你里面的样式设置被阻塞掉了。解决方案:把它改成异步即可async:true。
删掉alert后就又不可以了。百度了一下发现是因为ajax默认是异步执行的,也就是并没有等待请求完毕就开始执行下一行js语句了,导致赋值为null。如果遇到ajax请求后有回调函数之类的问题就要加上async:false,注意如果是给false加上引号是没发解决问题的。
函数应当直接写在页面即可调用;确保有引用js文件,如果引用了的话,也是可以调用的。引用方式,可以直接拖拽(因为路径准确),也可以自己写,引用脚本: 引用的js文件一定要在调用之前,否则就找不到函数了,会报错或undefined。
相关问答
Q1: JS函数里面只要写$.ajax函数会无法执行,去掉$.ajax函数就可以执行,jqu...
1、打开eclipse创建一个web工程项目,在WebContent下创建文件夹js,把JQuery的js文件放到js文件夹下,并创建index.html和doRequest.jsp。index.html文件内容如图。doRequest.jsp和web.xml文件内容如图。对原生JS版的做测试,在index.html加入如图代码,测试结果如图。
2、data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。这是一个简单的 GET 请求功能以取代复杂 $.ajax 。
3、把input type 改为button应该就可以了。
4、造成错误提示可能有两个问题:没有引用jquery文件。这段js代码应该放到底部,jquery文件之下。window.onload 多次使用(实际仅第一次有效)。
5、预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。
6、文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
Q2: 火狐浏览器下js代码不执行,需要设置settimeout才可以
1、因为浏览器的安全策略,在火狐下是不可以用js直接访问剪切板的。希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
2、(1)在appendChild或者innerHTML操作处判断document.readyState==complete,若为否,则setTimeout若干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。
3、尊敬的用户,您好!很高兴为您答疑。您代码中使用了document.all这个属性,事实上这是一个ie的专有属性,在火狐下要实现同样的需求要使用:document.getElementsByTagName(*).希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
4、修改代码让JS延迟5秒执行:setTimeout(‘yourFunction()’,5000)//5秒后执行yourFunction(),只执行一次。JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
5、代码执行速度很快,所以当setTimeout在500ms之后试图执行startTime()的时候,xianshi早已被执行完毕,运行环境已经不在xianshi里了。setTimeout是window的函数(window.setTimeout),这时候js的作用环境是全局(window),而它无法在全局范围内找到startTime,所以报错。
Q3: jquery的ajax问题success:function(data)不执行
参考:http://api.jquery.com/jQuery.ajax/ String dataType 预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。
success: callback //当请求操作完成数据正确返回时调用callback函数。此处的ajax参数还可以有:complete、success、error。complete是指readystate==4时;success是指state==200时;error是指相应出错或者解析服务器数据出错。//error: function(data){alert(data);} });alert(end);});这样修改一下。
jquery ajax请求成功,进入了success,但是返回的数据data为空是因为设置出现问题,解决方法为:创建基本的文件结构json_ajax.html和json_ajax.php,下载jquery.js。如图编写json_ajax.html和json_ajax.php文件的编码。在w(l)amp环境下运行json_ajax.html。json_ajax.php,运行结果如图。
Q4: 用AJAX刷新的出的html代码,这段代码的js不起作用,如何解决?
动态添加的html代码,如果在还没有真正渲染生成dom之前,js是无法获取到它们的,也就是节点根本不存在,所以原本的js就无法生效。对于动态生成的html,应该在生成完成之后再执行一次需要对这些html操作的js代码。
你的js代码要想运行有效,必须满足两个条件:jQuery必须加载完毕;页面的DOM结构必须加载完毕。
提交不成功的原因是因为我的提交数据中含有html标签,然后直接无法请求到我的目标地址。 然后解决办法如下: 在页面用JS的Base64编码(类似加密)带有html标签的参数值。 在目标地址获取到数据后,利用后台Base64解码方法对获取到的数据进行解码即可。
这三种方法都是异步的,所以在采用这类方法动态加载Js 的同时,主界面的Js脚本是继续执行的,所以可能出现通过异步加载的Js代码得不到预期的效果的情况。这时候可以考虑采用Ajax加载Js的方法。大概原理 :用XMLHTTP取得要脚本的内容,再创建 Script 对象。另外注意编码的保持一致。
JS并没有生效,页面能看到没有加载的HTML,它并没有隐藏掉,所以 ajax肯定没生效。
Q5: ...源代码没有加载的HTML代码但是页面能显示并且JS不执行
1、JS并没有生效,页面能看到没有加载的HTML,它并没有隐藏掉,所以 ajax肯定没生效。
2、因为没看到你的代码,按照以下看看哪里有问题。jquery文件必须放在外部文件之前。文件地址是否出错了。
3、html中内部放script可以运行,而把js放到外部就不能执行是设置错误造成的,解决方法为:在Javascript中,可以同时拥有多个script代码段,但是script代码段是分段解析与执行的。script执行过程,script代码段在执行时一共要经历两个阶段:① 编译阶段 ② 执行阶段。
4、你的js代码要想运行有效,必须满足两个条件:jQuery必须加载完毕;页面的DOM结构必须加载完毕。
ajax返回的js代码不执行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ajax没有返回值、ajax返回的js代码不执行的信息别忘了在本站进行查找喔。






