Greasemonkey: публикация данных вызывает подчеркивание в числах с плавающей запятой

#json #post #greasemonkey

#json #Публикация #жирный осел

Вопрос:

 let jsonString = JSON.stringify(json);    console.log(jsonString); //prints {"5667787":"currentTaxless":99.82,"current":123.78}}    GM.xmlHttpRequest({  method: "POST",  url: "https://exampleau.tld",  data: jsonString,  headers: {  "Content-Type": "application/x-www-form-urlencoded"  },  onload: function(response) {  //stuff  }  });  

Привет,

Я начинаю чувствовать себя глупо. Я не нашел никакого способа передачи в data обычный объект/массив или json, что бы я ни делал (изменил заголовки, добавил dataType , передал эту json переменную) — данные не были опубликованы. Только это решение публикует данные. В документации Greasemonkey нет ничего о подаче простого json.

Проблема в том, что на бэкэнде, когда я получаю такие данные — это:

  • массив с одним ключом и без значения
  • ключом является html_entity_encode (d) строка
  • где точки в числах с плавающей точкой заменяются символами подчеркивания. Это то, что я получаю:

    {"5667787":{"currentTaxless":99_82,"current":123_78}}

Вопрос: Что я делаю не так или как публиковать без проблем или получать нормально отформатированные опубликованные данные без проблем с помощью Greasemonkey???

Версии: Greasemonkey v4.11 Firefox v81

Ответ №1:

Не берите в голову.

Решение состоит не в том, чтобы

data: jsonString, ,

но скорее явно поместите строку json под какой-либо ключ в качестве значения, как это

data: 'data=' jsonString,