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