双十一开发了一个抽奖API,最近上线了,各个事业部的大神们需要前台页面,异步调用我的抽奖API,要我提供js。
js 提供之后发现不对,跨域了。之前也碰到过跨域的问题,研究过这个问题,三种方法解决。
现在轮到自己解决这个问题了。发现不太好解决。
经过一番查看资料啊,调试啊,最后终于调通了。
js代码如下
function clickheart(){ var times= new Date().getTime(); $.ajax({ url:"http://cj.xxxx.com/lottery/100003", //我的api dataType:'jsonp', data:'', jsonp:'callback', jsonpCallback:"callback", data: { time: times, }, success: function(datas) { var number = datas.code; var message= datas.result; if(number == 0){ location.href="https://login.xxxx.com/signin.aspx?returnurl="+escape(location.href); return false; }else if(number == 1){ alert("活动未进行,请查看活动细则"); }else{ alert(message); } } }); }
这是我在前端提供的js代码,同时服务器端,即我的API也做相应的修改。
我的API原来返回的数据时json格式的。现在需要对这个返回结果处理一下:
$data = array( 'code'=>1, 'result'=>'dsdsf', ); $data = json_encode($data);//原来api的返回结果 $data = 'callback'."($data)";//jsonp异步请求时需要 (新增的 ) return $data;
有用,记录以防下次用到