Javascript 带斜杠分隔参数的Ajax请求
我必须处理URL中遵循斜杠分隔参数的API,如下所示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/"+
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所要求的