您好我正在调用api而api是一个简单的api,我需要做的就是在url中添加一些参数,它会为我返回一个json文件。
我有它的工作,但这是一个小问题。我需要删除网址中的+AND+
的最后一个实例。
这是jQuery:
var query = "https://api.myurl.com/search="
var and = "+AND+"
var generalSearch = "x" + and;
var dateRange = "y" + and;
var ageRange = "z" + and;
jQuery.ajax({
type: "GET",
url: query + generalSearch + dateRange + ageRange",
success: function(data)
{
}
返回:
https://api.myurl.com/search=x+AND+y+AND+z+AND+
我需要+AND+
分隔符才能使网址生效并且api可以正常工作,但我设置它的方式包括在网址末尾的+AND+
打破它。
您可能想知道为什么不将+AND+
添加到ajax调用中的url字段,如下所示:
url: query + generalSearch + and + dateRange + and + ageRange"
我不这样做的原因是因为如果其中一个值为空或为null,则会在网址中放置+AND+
。例如,如果" generalSearch"是空的然后它将返回
https://api.myurl.com/search=+AND+y+AND+z
使用任何方法动态删除最后+AND+
的任何可行方法吗?
谢谢!
答案 0 :(得分:1)
尝试使用.substring()
与.lastIndexOf()
结合使用,这将移除+AND+
的最后一个实例
var s = "https://api.myurl.com/search=x+AND+y+AND+z+AND+";
s = s.substring(0, s.lastIndexOf("+AND+"));
console.log(s)

答案 1 :(得分:1)
query = "https://api.myurl.com/search="
var and = "+AND+"
var generalSearch = "x" + and;
var dateRange = "y" + and;
var ageRange = "z" + and;
var limit=""; //initialise limit string as empty
var limitIsRequired=true; //if u need to specify limit give it as true
if(limitIsRequired){
limit="&limit=1000"; //if limit is needed update limit="&limit=1000"
}
var urlTopass=query + generalSearch + dateRange + ageRange"; //computing the full url here
jQuery.ajax({
type: "GET",
url: urlTopass.substr(0,urlTopass.length-5)+limit, //removing the last +AND+
success: function(data)
{}
});