angularjs jsonp 跨域的大坑

var apiUrl = 'http://*************;
$http.jsonp(apiUrl).success(function (results) {
    console.log(results)
    if (results.data.userid) {
        userInfo.setObject(results.data);
        window.location.href = url;
    } else {

    }
});

这个是angularjs jsonp跨域请求方式,看上去什么问题也没有

当时请求的接口数据也返回了,code也200了,啥也成功了,但是就是不走if里边

后来解决问题后是因为  返回的数据格式问题

JSON_CALLBACK被替换成了一个特地为此请求生成的自定义函数。当支持JSOPN的服务器返回数据时,数据会被包装在由AngularJS生成的具名函数angular.callbacks._0中在这个例子中,GitHub服务器会返回包含在回调函数中的JSON数据,响应看起来如下所示: 

 // 简写  

  angular.callbacks._0({ 

    'meta': { 
      'X-RateLimit-Limit': '60', 
      'status': 200 
    }, 
    'data': { 
      'current_user_url': 'https://api.github.com/user' 
    } 
  }) 
写成这种格式就可以了

猜你喜欢

转载自blog.csdn.net/qq_20729891/article/details/81287246
今日推荐