Удалить необязательный параметр из URL AJAX - PullRequest
0 голосов
/ 05 октября 2018

Я хочу, чтобы URL-адрес ajax был динамическим. Я хочу, чтобы параметры sub и nbr были равны All или null, передавались только org_id.

Как сделатьЯ делаю это?

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

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы можете проверить их, используя функцию $.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>
0 голосов
/ 05 октября 2018

Почему бы не сделать что-то подобное?

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 и помещаете в них троичные условия, чтобы генерировать ваш URL таким образом прямо в вызове ajax:

$.ajax({
       type: "GET",
       url: `${baseURL}/submitform/get/${org_id}${(sub === 'ALL') ? `/${sub}` : ''}${(nbr === 'ALL') ? `/${nbr}` : ''}`,
       success: function(res) {           
            parseJSON(res);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...