在使用jQuery封装的jsonp时,jsonpCallback参数为什么会进入error

发布于 2022-09-06 12:29:00 字数 858 浏览 16 评论 0

问题概述:

如题,在使用jQuery封装的jsonp时,jsonpCallback参数省略,明明有数据返回,为什么会进入error;

提要:

刚开始学习jsonp的时候,了解到如下知识,jQuery对跨域请求进行一个名为jsonp的封装。使用jsonp有两个参数,如下

$.ajax({
url:'',
dataType: 'jsonp',
jsonpCallback: 'success',//在这里明确回调函数名称,下面使用
...
})

按照官网上的资料 以及 我在网络上查询的资料。
可以知晓————
在没有jsonpCallback设置的情况下,jquery 会 自动生成回调函数名称并在数据返回时封装数据进行调用
在没有使用jsonpCallback设置的情况下,后台就无需设置返回数据格式

    eg.  
    //明确调用 jsonpCallback:success,后台返回设置
    res.json('success('+JSON.stringify(obj)+')');
    //then
    //省略 jsonpCallback 后台返回设置
    res.rend(JSON.stringify(obj));

问题来了:

我如果不用 jsonpCallbcak,返回值进入不了success对应的方法中
不省略jsonpCallback,后台不设置也进入不了success中

后续进行错误补充

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

私藏温柔 2022-09-13 12:29:00

被网上的一篇文章误导了

https://segmentfault.com/a/11...
https://www.cnblogs.com/chian...
这两篇说的更加简练彻底

jsonp 后台必须设置相应的返回参数
否则,就可以跨域取任何网站的

【jquery并没有对jsonp返回数据进行打包处理!!!】

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文