Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2019, 19:04
Новичок на форуме
Отправить личное сообщение для dmitri22 Посмотреть профиль Найти все сообщения от dmitri22
 
Регистрация: 28.06.2019
Сообщений: 6

XMLHttpRequest не видит русские буквы
Подскажите, отправляю XMLHttpRequest и не видит русский текст. Скрипт добавляет текст в Гугл Таблицу
obj = {'B3':'Тест'};
var str = "m=put&a=";
var data = JSON.stringify(obj);
data = str+data;

var link = "https://script.google.com/macros/s/XXXXXXXXXXXXX/exec"; // линк на Google Script
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
var xhr = XMLHttpRequest();
xhr.open('POST', link, false);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.send(data);

А если отправить через браузер, то всё нормально
https://script.google.com/macros/s/XXXXXXXXXXXXXX/exec?m=put&a={"B3":"тест"}

Как побороть кодировку исходящего текста?

Последний раз редактировалось dmitri22, 31.07.2019 в 19:18.
Ответить с цитированием
  #2 (permalink)  
Старый 01.08.2019, 07:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dmitri22
отправляю XMLHttpRequest и не видит русский текст
Возможно эта статейка поможет...
https://habr.com/ru/post/17640/
Ответить с цитированием
  #3 (permalink)  
Старый 01.08.2019, 09:44
Новичок на форуме
Отправить личное сообщение для dmitri22 Посмотреть профиль Найти все сообщения от dmitri22
 
Регистрация: 28.06.2019
Сообщений: 6

Сообщение от ksa Посмотреть сообщение
Возможно эта статейка поможет...
https://habr.com/ru/post/17640/
Спасибо большое за наводку. Покопавшись в интернете нашёл простой способ. Достаточно каждый параметр конвертировать так

data = encodeURIComponent(data);


В итоге код выглядит так
obj = {'B3':'Тест'};
var str = "m=put&a=";
var data = JSON.stringify(obj);
data = encodeURIComponent(data)
data = str+data;

var link = "https://script.google.com/macros/s/XXXXXXXXXXXXX/exec"; // линк на Google Script
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
var xhr = XMLHttpRequest();
xhr.open('POST', link, false);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.send(data);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения в javascript-е - русские буквы cajka Events/DOM/Window 9 17.02.2014 12:05
JS не отображает русские буквы.. Alexa1995 Общие вопросы Javascript 1 18.10.2013 21:43
UTF коды русских букв > простые русские буквы gizmomy Общие вопросы Javascript 6 25.05.2010 09:49
Русские буквы квадратиками thunder2 Библиотеки/Тулкиты/Фреймворки 3 25.12.2009 00:10
русские буквы в графиках js charts Melichron Элементы интерфейса 22 11.09.2009 18:41