删除 ajax 调用的 URL 上的最后一个实例

问题描述 投票:0回答:2

我正在调用一个 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+

jquery ajax
2个回答
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
投票
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)
    {}
});
© www.soinside.com 2019 - 2024. All rights reserved.