Я пробую простой тест, чтобы узнать о методе 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, но без успеха, поэтому я должен пропустить что-то простое?
Перейдите в
var json = {"data":{"Num String":"2","Num":3,"Num":11,"Num":2,"Num":"?"}};
Попробуй это
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
});
+ Изменить
data: json,
в
data: JSON.stringify({ json : json }),