我正在调用一个 API,该 API 很简单,我需要做的就是向 URL 添加一些参数,它会为我返回一个 json 文件。
我已经可以使用了,但有一个小问题。我需要删除 URL 中最后一个
+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+
分隔符才能使 URL 有效且 API 正常工作,但我设置它的方式在 URL 末尾包含一个 +AND+
,这会破坏它。
您可能想知道为什么不直接将
+AND+
添加到 ajax 调用中的 URL 字段,如下所示:
url: query + generalSearch + and + dateRange + and + ageRange"
我不这样做的原因是,如果其中一个值为空或 null,它将在 URL 中放置一个
+AND+
。例如,如果“generalSearch”为空,那么它将返回
https://api.myurl.com/search=+AND+y+AND+z
有什么可能的方法可以使用任何方法动态删除最后一个
+AND+
?
尝试将
.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)
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)
{}
});