删除url上的某个内容的最后一个实例以进行ajax调用

时间:2017-07-17 06:08:21

标签: jquery ajax

您好我正在调用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+添加到a​​jax调用中的url字段,如下所示:

url: query + generalSearch + and + dateRange + and + ageRange"

我不这样做的原因是因为如果其中一个值为空或为null,则会在网址中放置+AND+。例如,如果" generalSearch"是空的然后它将返回

https://api.myurl.com/search=+AND+y+AND+z

使用任何方法动态删除最后+AND+的任何可行方法吗?

谢谢!

2 个答案:

答案 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)
    {}
});