Не удается отправить большие данные JSON через XMLHttpRequest - JavaScript - PullRequest
0 голосов
/ 24 апреля 2018

Мне нужно передать переменную json в качестве параметра в скрипт php, который обработает данные json и сохранит их в базе данных.

Итак, во-первых, в javascript я тестировал отправку данных следующим образом:

$('#sendResult').load('http://localhost/myurl/phpFile.php?mrData=' + jsonArrFinal);

Это работало хорошо при передаче небольших записей (записи могут отличаться, это зависит от данных, которые вставляет пользователь).

Но когда я увеличил записи, в консоли начала появляться эта ошибка:

414 (Request-URI Too Long)

Я изменил код js на:

var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost/myurl/phpFile.php?mrData=' + jsonArrFinal );
xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
xhr.send();

Но все еще появляется та же ошибка с методом POST. Я проверил параметр json, и он содержит 5439 символов.

Как я могу решить это? Заранее спасибо.

Обратите внимание, что длина может быть в 8 раз больше, чем 5439 символов.

1 Ответ

0 голосов
/ 24 апреля 2018

Не используйте запрос GET.

Вы храните данные, поэтому вы все равно должны использовать POST-запрос.

Используйте $.post вместо $.load и напишите свою собственную логику для отображения ответа в обработчике done().


Я изменил код js на:

Вам необходимо указать данные в теле запроса. POST-запросы не изменяют правила относительно того, сколько данных вы можете поместить в URL.


$.post("http://localhost/myurl/phpFile.php", { mrData: jsonArrFinal })
 .done( data => $("#sendResult").html(data) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...