首页 > 解决方案 > 从 AJAX url 中删除可选参数

问题描述

我想让 ajax URL 动态化,我想要的是 forsubnbr参数,如果它们等于Allnull仅通过org_id.

我该怎么做呢?

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

标签: jqueryajaxurl

解决方案


为什么不做这样的事情?

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 调用中以这种方式生成您的 url:

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

推荐阅读