从AJAX网址中删除可选参数

时间:2018-10-05 18:12:38

标签: jquery ajax url

我想使Ajax URL动态化,我想要的是subnbr参数,如果它们等于Allnull仅传递{{1} }。

我该怎么做?

org_id

2 个答案:

答案 0 :(得分:2)

为什么不做这样的事情?

let url_to_send = `${baseURL}/submitform/get/${org_id}`;
if (sub === 'ALL') { // or 'ALL' if you meant a string rather than some declared value
    url_to_send +=  `/${sub}`
}
if (nbr === 'ALL') { // or 'ALL' if you meant a string rather than some declared value
    url_to_sned += `/${nbr}`;
}

$.ajax({
   type: "GET",
   url: url_to_send,
   success: function(res) {           
        parseJSON(res);
});

将其放在带有nbr和sub参数的函数中,或者使用您使用的函数,URL会动态生成。这是我通常的处理方式

如果您使用的是es6,还可以使用模板字符串,并在其中添加三元条件,以便在ajax调用中以这种方式生成您的网址:

$.ajax({
       type: "GET",
       url: `${baseURL}/submitform/get/${org_id}${(sub === 'ALL') ? `/${sub}` : ''}${(nbr === 'ALL') ? `/${nbr}` : ''}`,
       success: function(res) {           
            parseJSON(res);
    });

答案 1 :(得分:1)

您可以使用$.in_array函数对其进行检查:

var baseURL = "baseURL";
var org_id = 111;
var sub = "All";
var nbr = null;
var conditions = ['All', null];
var url = baseURL + "/submitform/get/" + org_id;

if ($.inArray(sub, conditions) === -1 && $.inArray(nbr, conditions) === -1) {
  url += "/" + sub + "/" + nbr;
}

console.log(url);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>