2015-02-16 3 views
0

Я пытаюсь сериализации формы HTML и отправить его с помощью Jquery с действием в POST, в настоящее время у меня есть следующие Jquery:переменной Ajax JSON.stringify, POST пуст

var dataToSend = { 
        'name': 'person', 
        'description': 'very nice person' 
       } 

       $.ajax({ 
        type: "POST", 
        url: "http://localhost/rest/PersonPOST.php", 
        data: JSON.stringify(dataToSend) 
        //contentType: 'application/json', 
        //dataType: 'json' 
       }); 

на стороне сервера У меня есть PHP-скрипт, который печатает то, что он получает, до сих пор мне удалось получить запрос без переменной $ _POST. Если я decomment CONTENTTYPE и DATATYPE ничего не меняется ...

<?php 

error_log("START POST"); 
foreach ($_POST as $key => $entry) 
{ 
    if (is_array($entry)) 
    { 
     foreach ($entry as $value) 
     { 
      error_log($key . ": " . $value . "<br>"); 
     } 
    } 
    else 
    { 
     error_log($key . ": " . $entry . "<br>"); 
    } 
} 

?> 

Что случилось с выше запроса AJAX?

EDIT: file_get_contents ('php: // input') на стороне сервера правильно печатает содержимое, которое должно находиться внутри переменной $ _POST. Может ли кто-нибудь ответить, как обычно помещать это в переменную $ _POST или почему это невозможно? спасибо

+0

См http://stackoverflow.com/a/18867369 – haim770

+0

Убедитесь, что смотреть запрос/ответ в консоли браузера, это даст вам много информации о том, что происходит , –

+2

Зачем вы строчите свои данные? Храните его как объект. Прямо сейчас PHP получает строку, а не объект. Поэтому он не может перебирать его как ключ/значения. –

ответ

2

Вам не нужно stringify, так как вы уже вручную создаете объект JSON. Попробуйте так:

var dataToSend = { 
    'name': 'person', 
    'description': 'very nice person' 
}; 
$.ajax({ 
    type: "POST", 
    url: "http://localhost/rest/PersonPOST.php", 
    data: dataToSend 
}); 
Смежные вопросы