#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,