博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是jsonp?——使用jsonp解决跨域请求问题
阅读量:4925 次
发布时间:2019-06-11

本文共 758 字,大约阅读时间需要 2 分钟。

  

  我们在使用ajax请求的时候经常会产生跨域问题,这是由于浏览器的同源策略导致的。所谓同源,即域名、协议、端口均相同,否则不管是静态页面还是动态网页或者web服务都无法通过ajax正常请求。有时候,我们可以通过jsonp来解决。

 

  jsonp的数据传输方式是利用了 script标签src属性中的链接可以访问跨域的js脚本 这一特性(其实是js语言设计的一大漏洞哈哈),通过src来调用接收服务器返回的js脚本而不是常规的json格式的数据,从而达到接收数据跨域访问的目的。

 

下面使用jsonp,本地代码中script中的src标签指向另一域名下的remote.js文件,

            

然后本地函数可以输出远程js带来的数据,以达到跨域访问的目的,远程js代码:

localHandler({"result":"我是远程js带来的数据"});

但是怎么让远程js知道它应该调用的本地函数叫什么名字呢?毕竟是jsonp的服务者都要面对很多服务对象,我们可以传一个参数过去给服务端,

        

服务端动态生成这样一段js代码:

flightHandler({    "code": "CA1998",    "price": 1780,    "tickets": 5});

  

jquery也把jsonp作为ajax的一种形式进行了封装,这里调用也更加方便,本地不用再写调用函数 flightHandler 了,jquery会自动生成回调函数再把数据取出来供success函数调用,

     Untitled Page                     

嗯,就是这样了。

 

转载于:https://www.cnblogs.com/kaidarwang/p/7018622.html

你可能感兴趣的文章
201621123034 《Java程序设计》第4周学习总结
查看>>
vue-13-插件
查看>>
vs2015 报的字符串超长错误
查看>>
Flex的学习资源
查看>>
千万别信“创业要胆大”这种鬼话!有些人只是后盾够强
查看>>
PL/SQL 09 包 package
查看>>
Java 8 特性 —— 方法引用
查看>>
CSS3环形动画菜单
查看>>
动态设置 layui select 为选中状态
查看>>
Apache不定时宕机
查看>>
[译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量
查看>>
Unity3D初学心得
查看>>
学破解 <二> PE格式之IMAGE_NT_HEADERS
查看>>
laravel homestead
查看>>
https和http共存的nginx简单配置
查看>>
利用WGET下载文件,并保存到指定目录
查看>>
AO代码:VB6代码迁移到NET的几大理由(摘自ESRI文档片段)
查看>>
HDOJ 1518 Square
查看>>
Finance 网站收集
查看>>
如何使用Git 下载GitHub的东西
查看>>