用jquery怎么封装JSONP呢?
这个是用原生js进行封装的吧,用jquery要怎么封装呢?我也想了解一下
视频老师在课前说还要用jquery封装一次,课全讲完了也没见到,麻烦老师帮忙写个用jquery封装的给我看看?
35
收起
正在回答 回答被采纳积分+1
5回答
好帮手慕星星
2020-09-24 18:14:55
同学你好,问题解答如下:
1、jsonp是约定好的,口头约定或者文档约定都可以,前端不可以修改。后端在写接口的时候就固定了,按照规定好的写就行。如果想更改,让后端去改。
2、$.ajax()中参数也是固定的,没有办法添加随机生成函数名,参考文档:
https://www.html.cn/jqapi-1.9/jQuery.ajax/
祝学习愉快!
好帮手慕星星
2020-09-24 13:55:03
同学你好,问题解答如下:
1、意思是想更换jsonp还是更换abc呢?
课程中给出的接口,后台规定是jsonp,所以不能更换;abc可以是随机的,老师第一次粘贴的图片中就是完整的示例
<script type="text/javascript"> function getJSONP(url) { var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'h', 'j'], r1 = Math.floor(Math.random() * 10), r2 = Math.floor(Math.random() * 10), r3 = Math.floor(Math.random() * 10), name = 'getJSONP' + a[r1] + a[r2] + a[r3], cbname = 'getJSONP.' + name; // 判断url地址中是否含有?号 if (url.indexOf('?') === -1) { url += '?jsonp=' + cbname; } else { url += '&jsonp=' + cbname; } getJSONP[name] = function(data) { try { console.log(data) } catch (e) { // } } // jquery中ajax使用方式 $.ajax({ url: url, type: "GET", // 类型是jsonp dataType: "jsonp" }) } getJSONP('http://class.imooc.com/api/jsonp'); </script>
2、jQuery跨域和原生js跨域是两种不同的方式,所以不需要删除script标签和函数。随机函数名参数上面示例。
祝学习愉快~
好帮手慕星星
2020-09-24 11:50:38
同学你好,例子如下:
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> function getJSONP(url) { // jquery中ajax使用方式 $.ajax({ url: url, type: "GET", // 类型是jsonp dataType: "jsonp", // 回调函数是abc jsonpCallback: "abc", success: function(data) { console.log(data) } }) } getJSONP('http://class.imooc.com/api/jsonp?jsonp=abc'); </script>
结果:
自己测试下,祝学习愉快!
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星