какой URL вызывает эту функцию?

#javascript #jquery

#javascript #jquery

Вопрос:

есть такая функция:

 this.rmSaveParam = function(index, value, responseMethod, errorMethod) {
    $.ajax({
        type: "GET",
        dataType: 'json',
        cache: false,
        url: this.destination_   (updater.currentDevice_ ? "rmNewParam?uid="   encodeURIComponent(updater.currentDevice_)   "amp;" : "rmNewParam?")   "newParamIndex="   encodeURIComponent(index)   "amp;newParamValue="   encodeURIComponent(value),
        success: responseMethod,
        error: errorMethod
    });
    return false;
}
 

this.destination_ = https://www.econet24.com /
updater.currentDevice_ = C6ZPLELPP36R45624503480
index = 56
value = 67

Я пытаюсь угадать, как будет выглядеть URL-адрес. Я пробую что-то вроде этого, но, вероятно, это неправильно (слишком много вопросительных знаков?): «https://www.econet24.com/C6ZPLELPP36R45624503480rmNewParam?uid=C6ZPLELPP36R45624503480amp;rmNewParam?newParamIndex=56amp;newParamValue=67»

Комментарии:

1. Почему бы не выяснить это с помощью кода, а не угадывать?

2. О боже. Это ужасный беспорядок ручного материала, который должен быть просто data: {} свойством.

Ответ №1:

Это достаточно просто выяснить. Не нужно гадать!

 const destination = 'https://www.econet24.com/';
const currentDevice = 'C6ZPLELPP36R45624503480';
const index = 56;
const value = 67;


const url = destination
              (currentDevice 
                 ? "rmNewParam?uid="   encodeURIComponent(currentDevice)   "amp;"
                 : "rmNewParam?")
              "newParamIndex="   encodeURIComponent(index)
              "amp;newParamValue="   encodeURIComponent(value);

console.log(url); 

Есть лучший и гораздо более чистый способ сделать это.

 this.rmSaveParam = function(index, value, responseMethod, errorMethod) {
    const queryParams = {
        newParamIndex: index,
        newParamValue: value
    };

    if (updater.currentDevice_) {
        queryParams.uid = updater.currentDevice_;
    }

    $.ajax({
        type: "GET",
        dataType: 'json',
        cache: false,
        url: this.destination_   rmNewParam,
        data: queryParams,
        success: responseMethod,
        error: errorMethod
    });
    return false;
}
 

Обратите внимание на отсутствие encodeURIComponent , это делается для вас автоматически.