我在game.php中得到了这个代码来刷新.refre,但我总是得到“parsererror”。 jsonString来自jsonString = JSON.stringify(object);
<div class="refre"></div>..
<script>...
jsonString ={"right":0,"arrayQ":[{"0":"10","idQ":"19"},
{"0":"34","idQ":"20"},{"0":"89","idQ":"14"}],"lives":40};
$.ajax({
type: 'POST',
data: jsonString,
dataType: 'json',
url: 'Q.php',
contentType : 'application/json; charset=utf-8'
}).done( function (data, status) {
$('.refre').load('Q.php');
alert('Right');
})
.fail( function (data, status) {
alert("Wrong: "+status);
});
...</script>
另一个文件是Q.php,这个读取POST并发送一些HTML,现在它仅用于检查POST的信息。
<?php
$value = json_decode($_POST);
$categories = json_decode(file_get_contents('php://input'));
print_r($value);
print_r($categories);
?>
ajax有什么问题?我如何在Q.php中获得POST?如何从Q.php中的JSON中获得“生命”?
答案 0 :(得分:2)
试试这个,
<div class="refre"></div>..
<script>...
jsonString =[{"right":0,"arrayQ":[{"0":"10","idQ":"19"},
{"0":"34","idQ":"20"},{"0":"89","idQ":"14"}],"lives":40}];
$.ajax({
type: 'POST',
data: jsonString,
dataType: 'html',
url: 'Q.php',
contentType : 'application/json; charset=utf-8'
}).done( function (data, status) {
$('.refre').html(data);
alert('Right');
})
.fail( function (data, status) {
alert("Wrong: "+status);
});
...</script>
<?php
$value = json_decode($_POST);
$categories = json_decode(file_get_contents('php://input'));
print_r($value);
print_r($categories);
?>
答案 1 :(得分:0)
你所谓的jsonString
不是JSON,它是一个javscript对象。
当您将对象传递给data
$.ajax
时,jQuery将对该数据进行编码。
在php中,您可以使用lives
检索$_POST['lives']
。 它不是作为JSON发送的
将对象中的键视为表单输入的name
。
对于您的输出,您只能从服务器返回一个JSON字符串。 JSON必须有一组打开/关闭括号,以便它可以转换为一个数组或对象
答案 2 :(得分:0)
<div class="refre"></div>
<script>
jsonString =[{"right":0,"arrayQ":[{"0":"10","idQ":"19"},{"0":"34","idQ":"20"},{"0":"89","idQ":"14"}],"lives":40}];
$.ajax({
type: 'POST',
data: jsonString,
url: 'Q.php',
}).done( function (data, status) {
$('.refre').html(data);
alert('Right');
})
.fail( function (data, status) {
alert("Wrong: "+status);
});
</script>
Q.php:
print_r($_POST);
这没关系。 '数据'不会以json的形式发送。 $ _POST是Q.php中的一个数组,你不需要json_decode它。