双十一开发了一个抽奖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;
有用,记录以防下次用到