问题概述:
如题,在使用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中
后续进行错误补充
被网上的一篇文章误导了
https://segmentfault.com/a/11...
https://www.cnblogs.com/chian...
这两篇说的更加简练彻底
【jquery并没有对jsonp返回数据进行打包处理!!!】