1. ajax 的jsonp跨域原理
在Web页面上调用js文件时则不受是否跨域的影响,拥有”src”属性的标签都却拥有跨域的能力,比如<\script>、<img>.<\iframe>
那么跨域访问数据就有了一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理。
就好比使用一个<script>,让其 src属性指向我们要访问的跨域资源,然后以接收js文件的形式接收数据
但是由于src请求方式为GET,故请求方式为POST时跨域依旧是失败的
2. 通过dataType:"jsonp"解决
2.1 方式一 :在js文件中写js方法
$.ajax({
url : " ",
type : "get",
dataType : "jsonp",
})
function func(args){
}
此方式下后端不知道前端写的方法名
2.2 在data中指明
$.ajax({
url : " ",
type : "get",
dataType : "jsonp",
data : {"method": [js中定义的方法名]}
})
function [js中定义的方法名]{
}
此方式下后端通过请求得到方法名
2.2 在请求中指明jsonp的值
$.ajax({
url : " ",
type : "get",
dataType : "jsonp",
jsonp : "method"
})
function [js中定义的方法名]{
}
此处的请求为?method=jquery… method : 为jsonp的值
得到响应结果后执行success方法
|