jquery ajax跨域解决

双十一开发了一个抽奖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;

  有用,记录以防下次用到