Javascript 带斜杠分隔参数的Ajax请求

Javascript 带斜杠分隔参数的Ajax请求,javascript,jquery,ajax,rest,Javascript,Jquery,Ajax,Rest,我必须处理URL中遵循斜杠分隔参数的API,如下所示 http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude 我知道我可以将URL构建为如下所示的字符串片段 var longtude = 33.42432; var latitude = 42.3243; var en_type_id = 1; var url = "http://example.com/api/get_nearest_places/"+

我必须处理URL中遵循斜杠分隔参数的API,如下所示

http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude
我知道我可以将URL构建为如下所示的字符串片段

var longtude = 33.42432;
var latitude = 42.3243;
var en_type_id = 1;
var url = "http://example.com/api/get_nearest_places/"+en_type_id+"/"+longtude+"/"+latitude;
然后传递这个URL Ajax函数,但这是一种丑陋的管理方法,特别是当有大量请求时,因此这种方法不实用

我想知道这是否是一个JavaScript函数或库,它接受一个具有URL和URL自身参数的JOSN对象,并进行参数匹配,然后返回URL,或者更漂亮的方式是将一个基本URL作为JSON对象中的参数、函数名和参数

function getURLWithParam(url, param)
{
    $.each(params, function(index, value){
        url = url.replace(":" + index, value);
    });
    return url;
}
用法:

getURLWithParam("http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude",
{
    en_type_id: 1,
    latitude: 42.3243,
    longtude: 33.42432
});
用法:

getURLWithParam("http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude",
{
    en_type_id: 1,
    latitude: 42.3243,
    longtude: 33.42432
});

您可以创建一个简单的方法,如

函数createUrl(url,obj){
用于(obj中的x){
url=url.replace(':'+x,obj[x]);
}
返回url;
}
var url=createUrl(“http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude", {
长寿:33.42432,
纬度:42.3243,
en_类型_id:1
});

log(url)
您可以创建一个简单的方法,如

函数createUrl(url,obj){
用于(obj中的x){
url=url.replace(':'+x,obj[x]);
}
返回url;
}
var url=createUrl(“http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude", {
长寿:33.42432,
纬度:42.3243,
en_类型_id:1
});

console.log(url)
游戏进行得有点晚,但是如果您想在保存值的对象上循环,我会使用Object.keys for each

函数url替换(url,参数){
Object.keys(参数).forEach(函数(键){
//url=url.replace(newregexp(“:”+key),params[key]);
url=url.replace(“:”+key,参数[key]);
});
返回url;
}
var url=urreplace(“http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude", {
长寿:33.42432,
纬度:42.3243,
en_类型_id:1
});

console.log(url)游戏有点晚了,但是如果您想在保存值的对象上循环,我会使用Object.keys for each

函数url替换(url,参数){
Object.keys(参数).forEach(函数(键){
//url=url.replace(newregexp(“:”+key),params[key]);
url=url.replace(“:”+key,参数[key]);
});
返回url;
}
var url=urreplace(“http://example.com/api/get_nearest_places/:en_type_id/:longtude/:latitude", {
长寿:33.42432,
纬度:42.3243,
en_类型_id:1
});

console.log(url)看看jquery库。$。post()可能就是您正在寻找的方法for@Mady不是OP要求的,看看jquery库。$。post()可能就是您正在寻找的方法for@Mady不是OP所要求的