JS GET 转POST,POST 转GET方法

本文介绍了一种将POST请求转换为GET请求的方法来解决跨域问题,并提供了将URL参数转换为对象及反之的实用函数。

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

有些时候遇到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请求里面啦   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值