2013-12-24 2 views
7

Помню, что я использовал пост jQuery ajax в прошлом году, и я мог просто получить данные сообщения, набрав $_POST['param']. Сегодня я использую это снова для проекта, так что я загрузил последнюю версию JQuery библиотеки, и используется следующий код:

<script type="text/javascript"> 
    $(document).on('submit', '.ajaxform', function(e){ 
     e.preventDefault(); 

     var datastring = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      data: datastring, 
      contentType: "application/json; charset={CHARSET}", 
      dataType: "json", 
      beforeSend: function(){ 
       console.log($(this).serialize()); 
      }, 
      success: function(data){ 
       alert('yes'); 
      }, 
      error: function(errMsg){ 
       alert('error'); 
      } 
     }); 
    }); 
</script> 
<form action="" id="register" name="register" class="ajaxform" method="post" enctype="multipart/form-data"> 

    <input type="text" name="username" value="" /> 
    <input type="password" name="password" value="" /> 

    <input type="hidden" name="action" value="register" /> 
    <input type="hidden" name="{TOKENID}" value="{TOKEN}" /> 

    <input type="submit" value="Register" /> 

</form> 

После того как я представить не могу получить значение поля ввода, набрав $_POST['username'].

Я проверил элемент проверки, и я заметил, что что-то другое.

Request URL:http://project0/member.php 
Request Method:POST 
Status Code:200 OK 
... 
... 
Content-Type:application/json; charset=UTF-8 
... 
... 
Request payload: 
username=asd&password=asd&action=register&29cd5e5ca1=73050db390872eb7c3fc564206b961c59a6363d6 

Это то, почему я не могу получить данные POST, просто набрав $_POST['param']? Как мне вернуться к данным POST, а не к полезной нагрузке?

ответ

11

За исключением:

contentType: "application/json; charset={CHARSET}" 

Использование (значение типа содержимого по умолчанию):

contentType: "application/x-www-form-urlencoded; charset=UTF-8" 
Смежные вопросы