jsonp的产生:
1.AJAX直接请求普通文件存在跨域无权限访问的问题,不管是静态页面也好.
2.不过我们在调用js文件的时候又不受跨域影响,比如引入jquery框架的,或者是调用相片的时候
3.凡是拥有scr这个属性的标签都可以跨域例如<script><iframe>
4.如果想通过纯web端跨域访问数据只有一种可能,那就是把远程服务器上的数据装进js格式的文件里.
5.而json又是一个轻量级的数据格式,还被js原生支持
6.为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback 参数给服务端,
本地的html内容,callback函数
<html>
<head>
<script>
function callback(remoteData){
console.log('从远程跨域获取的数据是'+ remoteData)
}
</script>
<script src=http://www.remote.com/remote.js></script>
</head>
<body></body>
</html>
需要跨域的远程服务器remote.js内容
var data = '我是远程的服务器的数据'
callback(data)
这样你在本地html就可以拿到远程服务器的数据了,至于remote.js,你可以是一个指向后端服务的任何编程语言的连接,后端只要拼装执行callback(data)函数就行了 有一篇文章说的很详细,不懂可以参照这个文章https://blog.csdn.net/hansexploration/article/details/80314948
评论(2)
213
逛逛~