AJAX XMLHttpRequest POST - PullRequest
       8

AJAX XMLHttpRequest POST

14 голосов
/ 25 ноября 2010

Я пытаюсь написать XMLHttpRequest, используя метод POST.В прошлом мне удавалось использовать XMLHttpRequest с помощью метода GET, но я борюсь с POST.

Вот мой код:

var xmlhttp = null;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

var url = "http://www.mysite.com/script.php";
var params = "var=1";
xmlhttp.open("POST", url, true);
xmlhttp.send(params);

Он в основном вызывает скрипт PHP, который затем добавляет некоторую информациюбаза данных.

Ответы [ 2 ]

49 голосов
/ 25 ноября 2010

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

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

Кроме того, не забудьте использовать encodeURIComponent для правильного кодирования ваших параметров, например ::

var params = "var=" + encodeURIComponent("1");

(в данном конкретном примере это необязательно, но при использовании специальных символов, таких как +, все будет ужасно неправильно, если вы не закодируете текст параметра).

Обновление - вы также должны заменить все экземпляры %20 на +, например

var params = params.replace(/%20/g, '+');
0 голосов
/ 25 ноября 2010

Хорошо, мне удалось это отсортировать.

Хотя странная причина может быть связана с безопасностью в песочнице, но вместо того, чтобы иметь полный URL-адрес, я только что использовал относительный путь к файлу, и теперь он работает.

Спасибо всем за поддержку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...