Вы забыли явно установить заголовок 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, '+');