angularjs jsonp 跨域的大坑

本文介绍了一个关于使用AngularJS进行JSONP跨域请求的实际案例。案例中详细描述了遇到的问题及其解决方法,即调整服务器返回的数据格式,确保数据能正确地封装在AngularJS自动生成的回调函数内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值