为了账号安全,请及时绑定邮箱和手机立即绑定

ajax跨域问题

ajax跨域问题

一只甜甜圈 2019-02-16 23:19:42
ajax 跨域访问数据,ie9和ie8接收不到数据用angular的http也是一样 是不是都是因为跨域所以才这样有啥解决办法吗
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

第一选择JSONP,如果不能使用需要检查是否是http/https的原因,需要注入网站和jsonp地址都是http或者https.


更复杂的逻辑可以选择下面的:

需要前后台都加以配合,并且https|http保持一致:

前端:


function ajax(url,data) {

    var request = new XMLHttpRequest();

    request.addEventListener("load", function () {

        if (request.status == 200) {

           //请求成功,处理业务

        } else {

            if (opts.error) {

               //请求失败了

            }

        }

    }, false);

    request.addEventListener("error", function () {

        console.log('出错了');

    }, false);

    request.addEventListener("abort", function () {

        console.log('中断了');

    }, false);


  

    request.open("POST"), url, true);

    request.setRequestHeader("X-Requested-With", "XMLHttpRequest");

   

        var fromData = new FormData();

        for (var k in data) {

            fromData.append(k, opts.data[k]);

        }

        request.send(fromData);

    


}

后端,PHP为例:


    header("Access-Control-Allow-Origin: *");

    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

    //具体业务逻辑

如果你当前的网页是http的,那么被请求的http也应该是http,反之https也是一样的


查看完整回答
反对 回复 2019-02-21
  • 1 回答
  • 0 关注
  • 382 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信