本文实例讲述了JSONP 的原理、理解 与 实例。分享给大家供大家参考,具体如下:
1.什么是jsonp
1.1 同源策略
浏览器同源策略的限制,XmlHttpRequest只允许请求当前源(相同域名、协议、端口)的资源。
-1)jsonp只支持get请求
-2)不受同源策略限制 ,兼容性好 不需要XMLHttpRequest(ActiveX)支持,通过js回调函数返回结果
-3)不能解决 不同域的两个页面之间js调用的问题
2. jsonp 原理
动态添加一个script标签,get链接上发送回调函数名称 传给服务器 服务器获取回调函数名称 返回这个函数名称的JS函数(拼装函数) json数据作为函数的实际参数传入 返回的数据是js函数 在前端调用回调函数( json数据传入) 执行回调函数
3.实例
先来说说 服务端应该返回的数据形式 如下所示 用的php thinphp框架编写的 访问URL 是
http://91hx.xicp.cn:8989/Service/Validata/testJsonP"htmlcode">
public function testJsonP(){ $jsonname =I('get.callback');//获取URL上的callback名称 也就是获取jsonpCallback $a = [name=>'张三',sex=>'男',msg=>'返回成功!'];// 一个数组数据 $json = json_encode($a);// 转成json数据 echo $jsonname.'('.$json.');';//正确的格式应该是这样 jsonpCallback({"name":"\u5f20\u4e09","sex":"\u7537","msg":"\u8fd4\u56de\u6210\u529f\uff01"}); 不要忘记分号; 这样返回的才是一个js函数 前台肯定有这个函数名字才行 }tip:关联数组 上面例子 $a = array( "msg" => "返回成功!")
前台 访问URL http://localhost:63343/H5/jsonP.html 动态添加一个script标签 src里 调用回调函数 jsonpCallback() . "htmlcode">
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> function jsonpCallback(date){ console.log(date); alert(date); alert(date.msg); } var script =document.createElement('script'); script.src='http://91hx.xicp.cn:8989/Service/Validata/testJsonP"" src="/UploadFiles/2021-04-02/202005161000323.png">这下面的图 点击一下左侧链接 切换到Response就可以看到响应的数据了 跟前端写的函数名要一致 里面的json数据就是 那个函数的参数 传入 别忘记有分号;
前端我们已经
console.log
数据了 也可以查看 切换到Console标签下更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript中ajax操作技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 吕方《爱一回伤一回》[WAV+CUE][454M]
- 鸿雁组合.2013-《草原最强音》天艺[WAV+CUE]
- 群星.1987-地球大合唱(LP版)【WAV+CUE】
- 金海心-《拥抱爱》[WAV+CUE]
- 杨千嬅《千嬅盛放》3CD[WAV+CUE][1.8G]
- 《莫扎特经典代表作品集》[FLAC][1.7G]
- 张信哲《梦想》[WAV分轨][459M]
- 拥金卓玛-伊敏河[正版CD低速原抓WAV+CUE]
- 辛宝儿《浅唱岁月》天弦文化醉美暖声拥吻梦想[WAV+CUE]
- 梁紫丹《城市足臃[母带级重生金CD正版CD低速原抓WAV+CUE
- 中唱唱片群星《好歌珍藏-感恩.赞美1》WAV+CUE
- 中唱唱片群星《好歌珍藏-故乡.家园》2CD【WAV+CUE】
- ChrisBotti-ChrisBottiInBoston(克里斯·波提:波士顿音乐会)(2008-9-18)[WAV+CUE]
- 乡村民谣Paul O′Brien《Walk Back Home》[DFF][1.6G]
- 郑秀文《华纳超极品音色系列》[FLAC][927M]