您的位置:首页 > Web前端 > JavaScript

JS GET 转POST,POST 转GET方法

2018-01-11 16:32 204 查看
有些时候遇到post跨域问题的时候,这时候就需要把post里面的参数转换为get形式去请求

     这里是把url传过来的参数转换为一个对象(es5写法,后为es6写法)

function urlArgs(url){
var args = {};
var index = url.indexOf('?');
var query = url.substring(index+1);
var pairs = query.split('&');
for  (var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if(pos == -1){
continue;
} // 如果没找到,就跳过
var name = pairs[i].substr(0,pos);  // 获得名称
var value = pairs[i].substr(pos+1); // 提取value
value = decodeURIComponent(value); // 解码value ,如果地址栏的参数没有转码的话则不需要这一步
args[name] = value;
}
return args
}



urlArgs : (url) => {
let args = {}
let index = url.indexOf('?')
let query = url.substring(index+1)
let pairs = query.split('&')
pairs.forEach((item) => {
let pos = item.indexOf('=')
if (pos != -1) {
let name = item.substr(0,pos)
let value = item.substr(pos+1)
value = decodeURIComponent(value) // 解码
args[name] = value
}
})
return args
},




   把一个对象转换为url传参后为es6语法

function objArgs(url,obj) {
var url = url + '?'; // 提前加好问号
for(var name in obj){
url += name + '=' + encodeURIComponent(obj[name]) + '&'; // 转码并进行赋值
}
url = url.substring(0,url.length-1); // 去掉最后一个&符号
return url; // 返回
}


objArgs : (url,obj) => {
let reurl = url + '?'
let keys = Object.keys(obj)
keys.forEach((key) => {
reurl += key + '=' + encodeURIComponent(obj[key]) + '&'
})
reurl = reurl.substring(0,reurl.length-1)
return reurl
}



到这里为止,你就可以把这个加入到你的http请求里面啦   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息