最近使用前后端分离开发项目比较多,经常碰到的一个问题就是,前端静态页面请求,后端api获取数据,很多时候,前端和后端都不是在同一个域下的(协议,域名,端口)。
这里使用的是ajax请求,因为浏览器的同源策略的限制,不允许跨域ajax跨域请求,直接请求是不行的,那就使用到jsonp,这是一个非官方跨域数据交互协议。
使用get请求
前端:
var _url = 'http://www.test1.com?callback=?'; $.getJSON(token_url+'&uid='+uid+'&token='+token,function(res){ console.log(res); }
后端:
$token = $_GET['token']; $uid = $_GET['uid']; $callback = $_GET['callback']; $data = array('name'=>'haha','sex'=>'1'); $data = json_encode($data); echo $callback."(".$data.')';
这样子,前端就可以跨域获得json格式的数据了