大佬教程收集整理的这篇文章主要介绍了跨域请求 数据返回却无法执行回调函数的原因之一,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
由于公司项目的问题,导致跨域的情况比较多。既要考虑安全性问题又要解决跨域。只能从中做一些取舍。
今天发现的问题是,前端已经获取了后台返回的CALLBACK函数,但是无论如何都不执行。这可把我急的,之前也写过一次跨域请求。现在@L_616_4@同样写好的函数,却是一个能执行一个不能执行。多次比对发现返回的内容也没有错。最后发现原因是我把回调函数写在了
$(function(){
//我把跨域请求也写在了这个匿名函数中
function callBACk(res)//回调函数也写在匿名函数中 {
}
});
我将回调函数拿出来放在$(function(){})之外就能够执行了。那么为什么会出现这样的情况呢?
请先运行下面代码
$(function(){
function test() {
console.log('在外面不可以@L_616_4@已经准备好的函数');
}
})
test();
上面的代码会提示出错。test()函数找不到,因为test()函数是匿名函数的内部成员方法,同样JSONP跨域请求也是如此,请求后返回的回调函数相当于上面的test();当你的test是定义在匿名函数内部。则无法访问。而且浏览器还不会提示你这个回调函数找不到。
出现这种低级错误的原因主要还是归咎于自己学得不精通,一般都会把所有函数写在匿名函数内部。学得越多越杂,思考的东西就越少,写了这么久我都没有意识到JS和其他后台语言不通。能够在方法里面定义方法。呵呵。。。要走的路还长着呢,现在我已经开始明确方向并往前端走了。JS方面的专业书籍还没有看过。有空得学精通。JS是一门很高端的语言。对的,高端。在我看来。
这个内部函数让我想起了闭包的内容。恩。下一篇就记录下闭包这个东西吧。
以上是大佬教程为你收集整理的跨域请求 数据返回却无法执行回调函数的原因之一全部内容,希望文章能够帮你解决跨域请求 数据返回却无法执行回调函数的原因之一所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。