Не удается получить данные в PHP из сообщения JQuery Ajax с помощью JSON

0

Я пробую простой тест, чтобы узнать о методе JQuery Ajax POST, и у меня есть небольшой пример на моем сервере. Однако я не могу работать.

Мой JavaScript выглядит следующим образом:

JavaScript:

var json = {"Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?"};
$.ajax({
        type: "POST",
        url: "sampleJSONPost.php",
        data: json, //Data to POST to the server
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function (jqXHR, status, err) {
            console.log("Error " + err + " " + status + " " + JSON.stringify(jqXHR)); //Log the Error 
        },
        success: function (data, status, jqXHR) {  
              console.log(JSON.stringify(data)); //Log the Data returned
              $("span").text(data);
        }
    });
};

И вот мой PHP:

PHP:

<?php
$data = $_POST["data"];
echo json_decode($data);
?>

Однако это всегда дает мне следующую ошибку:

Error SyntaxError: Unexpected end of input parsererror {"readyState":4,"responseText":"","status":200,"statusText":"OK"} 

Так что мне кажется, что моя переменная $ data в PHP не получает JSON, который я отправляю с POST, было бы правильно? Если так, кто-нибудь может помочь мне найти то, что неправильно? Я уже пробовал много других решений от SO, но без успеха, поэтому я должен пропустить что-то простое?

Теги:
http-post

3 ответа

6
Лучший ответ

Перейдите в

var json = {"data":{"Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?"}};
  • 0
    Или на стороне сервера $ data = $ _POST;
  • 0
    Я все еще получаю ту же ошибку, я боюсь
Показать ещё 2 комментария
1

Попробуй это

var json = {{"Num String":"2"},{"Num":3},{"Num":11},{"Num":2}};

или

Это, я не проверяю

$.ajax({
    type: 'POST',
    url: 'sampleJSONPost.php',
    contentType: 'application/json; charset=utf-8',
    data: { "Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?" },
    dataType: 'json',
    success: function(data)
{

},
    error: AjaxFailed
});
1

+ Изменить

      data: json,

в

    data: JSON.stringify({ json : json }),
  • 0
    Я все еще получаю ту же ошибку с этим подходом

Ещё вопросы

Сообщество Overcoder
Наверх
Меню