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'
}
})
写成这种格式就可以了