Отправить не редактируемый массив с помощью JSON и Ajax

#javascript #arrays #ajax #send

#javascript #массивы #ajax #Отправить

Вопрос:

Возможно ли отправлять не редактируемые массивы?

То, что я пытаюсь отправить, это:

 var items = [];
//console.log(JSON.stringify(items));
allitems = JSON.stringify(items);

[{
    "assetid": "7814010469",
    "classid": "1797256701",
    "instanceid": "0",
    "name_color": "D2D2D2",
    "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQNqhpOSV-fRPasw8rsUFJ5KBFZv668FFYznarJJjkQ6ovjw4SPlfP3auqEl2oBuJB1j--WoY322QziqkdpZGr3IteLMlhpw4RJCv8",
    "market_hash_name": "Gamma Case"
}]

$.ajax({
    type: "POST",
    async: true,
    url: "jackpot/deposit",
    data: {
        myData: allitems
    },
    success: function(body) {
        toastr["info"]("Success! Our bots are generating your trade. Please wait...", "Inventory");
    },
});
  

Но я хочу сделать его недоступным для редактирования через консоль.
И отправить его.

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

1. Что вы подразумеваете под не редактируемым?

2. Что такое allitems ? Ваша переменная items .

3. Я имею в виду, что я хочу, чтобы мой скрипт добавлял «элементы» в массив, но я не хочу, чтобы пользователь редактировал или манипулировал массивом через консоль.

Ответ №1:

Вы должны иметь возможность использовать Object.freeze(), чтобы предотвратить изменение массива. Например:

 var arr = [1, 2, 3];
Object.freeze(arr);
arr.push(4); // error
  

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

1. Но «элементы» выбираются из инвентаря. Если я его заморозю, скрипт вообще не сможет добавить их в массив.

2. @MustafaKutlu замораживает массив после выполнения всех манипуляций, но до его отправки.

3. Пользователь может поместить в массив несколько элементов. Если я замораживаю его после отправки элементов, они все еще могут редактировать до его отправки. И замораживание после 1 нажатия не является вариантом, потому что массив становится заблокированным. Я схожу с ума..

4. @MustafaKutlu Итак, вы беспокоитесь о том, что пользователь сможет получить доступ к переменным с консоли? Почему бы тогда не использовать локальные переменные?

5. Да, точно. Как я должен использовать локальные переменные?