老师写的跨域方法是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
同学你好,对于你的问题解答如下:
post方法不支持jsonp格式,所以无法使用jsonp实现post方式的跨域请求
如果想要实现post方式的跨域请求,需要后端人员来进行操作,利用cors技术,也就是设置请求头。即在后端的代码中共添加:response.setHeader("Access-Control-Allow-Origin", '*'); 这样就可以直接使用ajax方法发送post请求提交和获取数据。
在实际开发中,post方式都是后端处理跨域的问题,所以同学了解下即可
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题