老师写的跨域方法是get 请求? 那登录要带用户名密码post去请求怎么写

来源:3-5 跨域调用

eleven1898

2020-06-04 11:17:44

// // 封装一个jsonp函数,实现跨域

    function getJSONP(url, callback) {

        if (!url) {

            return;

        }

        var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']; //定义一个数组以便产生随机函数名

        var r1 = Math.floor(Math.random() * 10);

        var r2 = Math.floor(Math.random() * 10);

        var r3 = Math.floor(Math.random() * 10);

        var name = 'getJSONP' + a[r1] + a[r2] + a[r3];

        var cbname = 'getJSONP.' + name; //作为jsonp函数的属性

        if (url.indexOf('?') === -1) {

            url += '?jsonp=' + cbname;

        } else {

            url += '&jsonp=' + cbname;

        }

        var script = document.createElement('script');

        //定义被脚本执行的回调函数

        getJSONP[name] = function(e) {

            try {

                callback && callback(e);

            } catch (e) {

                //

            } finally {

                //最后删除该函数与script元素

                delete getJSONP[name];

                script.parentNode.removeChild(script);

            }


        }

        script.src = url;

        document.getElementsByTagName('head')[0].appendChild(script);

    }

    // 跨域调用

    getJSONP('http://class.imooc.com/api/jsonp', function(response) {

        console.log(response);

    });


写回答

1回答

好帮手慕慕子

2020-06-04

同学你好,对于你的问题解答如下:

  1. post方法不支持jsonp格式,所以无法使用jsonp实现post方式的跨域请求

  2. 如果想要实现post方式的跨域请求,需要后端人员来进行操作,利用cors技术,也就是设置请求头。即在后端的代码中共添加:response.setHeader("Access-Control-Allow-Origin", '*'); 这样就可以直接使用ajax方法发送post请求提交和获取数据。

    在实际开发中,post方式都是后端处理跨域的问题,所以同学了解下即可

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

1

0 学习 · 14456 问题

查看课程