Это javascript:
function eAC(emailData) { if (window.XMLHttpRequest) { httpRequest = new XMLHttpRequest(); } if (!httpRequest) { return false; } console.log(emailData); var fd = new FormData(); fd.append("email", emailData); httpRequest.onreadystatechange = eAC_callback; httpRequest.open('POST', "http://website.com/file.php"); httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); httpRequest.send(fd); } function eAC_callback() { if (httpRequest.readyState === 4) { if (httpRequest.status === 200) { var response = JSON.parse(httpRequest.responseText); console.log(response); } else { return false; } } }; Это php:
 $pec_result = array(); if(isset($_POST['email']) && strlen($_POST['email']) > 0){ $pec_result['error'] = 'Its good'; echo json_encode($pec_result); die(); } else { $pec_result['error'] = $_POST['email']; echo json_encode($pec_result); die(); } 
  Проблема здесь в том, что $_POST['email'] имеет значение NULL .  Почему $ _POST ['email'] null, когда console.log () для emailData возвращает значение.  Может ли кто-нибудь помочь?  Я думаю, что проблема находится в добавочной части.  (Не уверен) 
Пожалуйста, не jQuery . Я знаю, как это сделать в jQuery, но я хочу узнать, как это сделать в javascript. Так что спасибо
  Ваша проблема в том, что с FormData запрос отправляется как multipart/form-data not application/x-www-form-urlencoded .  Удалите строку, в которой вы указываете тип контента.  Правильный тип контента будет установлен автоматически при передаче объекта FormData в XMLHttpRequest.send . 
попробуйте это (EDITED)
 fd='email='+emailData; 
полный код:
 function eAC(emailData) { if (window.XMLHttpRequest) { httpRequest = new XMLHttpRequest(); } if (!httpRequest) { return false; } console.log(emailData); // var fd = new FormData(); // fd.append("email", emailData); fd='email='+emailData; httpRequest.onreadystatechange = eAC_callback; httpRequest.open('POST', "http://website.com/file.php"); httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); httpRequest.send(fd); } function eAC_callback() { if (httpRequest.readyState === 4) { if (httpRequest.status === 200) { var response = JSON.parse(httpRequest.responseText); console.log(response); } else { return false; } } };