博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSONP跨域
阅读量:6003 次
发布时间:2019-06-20

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

javascript跨域资源请求是一个老生长谈的问题了。但是莫笑,我至今没有接触过....最近弄了弄后端,理顺了一下,写在这里。

所谓JSONP就是JSON with Padding。是一个非官方的协议。据说各种浏览器兼容都很好,看下后面的代码应该就明白了。

  • 先说客户端

    JSONP的协议大约是这样的。客户端请求一个地址的时候,将回调函数通过url传给服务器。服务器在接到请求之后,会返回一个执行这个回调的javascript代码片断。所以,客户端的请求大约就是这个样子的。

    假设_callback就是请求成功之后的回调。data就是需要跨域获得的数据。那么,前端可以这样做。http://cross-domain/a.jsp?jsoncallback=_callback

  • 再说服务器

    接收该url之后,可以通过后端的方法获取到这个jsoncallback的函数名。后端的大致代码如下。

    doGet(request, response){     String data = ""; // 后端通过查数据库或其他方式取得该请求需要的数据,将其拼成一个json格式的字符串。     String callbackName = request.getParameter("jsoncallback"); // 取得callback的名字。     response.write("

    浏览器接收到该字符串之后,会将其解析为javascript代码,然后执行,就可以达到在当前页面取得其他域的数据的目的了。

转载于:https://www.cnblogs.com/CoinXu/p/4561965.html

你可能感兴趣的文章
漫谈 Clustering (1): k-means(转)
查看>>
从零搭建mongo分片集群的简洁方法
查看>>
J2EE环境配置与工具使用
查看>>
bzoj3684: 大朋友和多叉树(拉格朗日反演+多项式全家桶)
查看>>
C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
查看>>
【经典算法】第四回:希尔排序
查看>>
css 禁止选中文本
查看>>
bzoj2165
查看>>
烂泥:【解决】NFS服务器使用showmount –e命令报错
查看>>
烂泥:LVM学习之逻辑卷LV及卷组扩容VG
查看>>
数据库设计的三大范式
查看>>
NOIP提高组 2013货车运输
查看>>
Hadoop实战1:MapR在ubuntu集群中的安装
查看>>
古琴与数学
查看>>
mysql第二次安装失败的解决方法
查看>>
第二次个人冲刺总结03
查看>>
搭建LoadRunner中的场景(四)控制器的全局设置
查看>>
MVC+EF 入门教程(一)
查看>>
前端学PHP之PDO预处理语句
查看>>
Git版本切换
查看>>