最近研究了一下ajax跨域传输的问题,ajax跨域有两种方式,一种就是按getjsonp得方式,另一种就是post传输。
先来说一下getjsonp传输吧,getjsonp传输最重要的就是以下几点:
1:必须是get方式
2:数据类型必须是jsonp
3:就是ajax必须加上jsonp: "callback",回调
4:同样的也要在服务端加上回调
下边直接上代码
前端ajax代码
<script >
$(document).ready(function() {
$('#submit').click(function(){
var j = $("form").serializeArray();
//var data = JSON.stringify($("form").serialize()));
console.log(j);
$.ajax({
type:"GET",
url:"http://localhost1/api",
data:j,
jsonp: "callback",
dataType: 'jsonp',
success:function(data) {
$('.result').show();
$('.result').text(data.email);
}
});
return false;
});
});
</script>
后端服务端代码:
function index(Request $request){
$callback = isset($_GET['callback']) ? trim($_GET['callback']) : '';//get jsonp方式
$data = $request->all();
$data['xxx'] = [1,1,2];
return $callback.'('.json_encode($data).')';
}
后端返回数据的时候一定要加上回调