通过ajax到php脚本将JSON数组打印到屏幕
我一直在将我的代码与web上的其他示例进行比较,但仍然找不到我的错误。 当我加载页面并单击submit时,屏幕上什么也没有发生。但是,在Firebug中,我收到了通过ajax到php脚本将JSON数组打印到屏幕,php,jquery,html,ajax,json,Php,Jquery,Html,Ajax,Json,我一直在将我的代码与web上的其他示例进行比较,但仍然找不到我的错误。 当我加载页面并单击submit时,屏幕上什么也没有发生。但是,在Firebug中,我收到了POST 200 OK,应该出现在屏幕上的PHP脚本在POST响应选项卡中详细说明 由于Firebug做出了适当的响应,我对什么是错误的感到困惑 基本HTML表单 <form id="form" action="" method="post"> <input type="submit" name="submit
POST 200 OK
,应该出现在屏幕上的PHP脚本在POST响应选项卡中详细说明
由于Firebug做出了适当的响应,我对什么是错误的感到困惑
基本HTML表单
<form id="form" action="" method="post">
<input type="submit" name="submit" id="submit" value="submit"/>
</form>
<div id="results"></div>
PHP
将数据类型设置为JSON将使jQuery ajax请求自动将其解析为Javascript对象。这里有两种解决方案。更改ajax请求的数据类型:
$.ajax({
type:'POST',
url: 'ok.php',
dataType:'text',
data: ({json:$jsonAddIt}),
success:function(data){
$("#results").html(data);
}
});
或者,您可以使用库对对象进行字符串化:
$.ajax({
type:'POST',
url: 'ok.php',
dataType:'json',
data: ({json:$jsonAddIt}),
success:function(data){
$("#results").html(JSON.stringify(data));
}
});
希望有帮助。将数据类型设置为JSON将使jQuery ajax请求自动将其解析为Javascript对象。这里有两种解决方案。更改ajax请求的数据类型:
$.ajax({
type:'POST',
url: 'ok.php',
dataType:'text',
data: ({json:$jsonAddIt}),
success:function(data){
$("#results").html(data);
}
});
或者,您可以使用库对对象进行字符串化:
$.ajax({
type:'POST',
url: 'ok.php',
dataType:'json',
data: ({json:$jsonAddIt}),
success:function(data){
$("#results").html(JSON.stringify(data));
}
});
希望有帮助。这两行不需要,第二行撤销第一行。把它们都拿走
$jsonAddIt = JSON.stringify(addIt);
$jsonAddIt = JSON.parse($jsonAddIt);
如果ajax请求成功,此行应该在div中为您提供[object object]
,否则它将无所作为(这是您当前的结果)
目前,您的ajax请求实际上失败了,因为它没有返回预期的JSON数据类型。如果您将数据类型更改为“html”,它将起作用
$.ajax({
type:'POST',
url: 'ok.php',
dataType:'html',
data: {json:addIt},
success:function(data){
$("#results").html(data);
}
});
而且
var addIt = new Object();
应该是
var addIt = {};
这两行不需要,第二行撤消第一行。把它们都拿走
$jsonAddIt = JSON.stringify(addIt);
$jsonAddIt = JSON.parse($jsonAddIt);
如果ajax请求成功,此行应该在div中为您提供[object object]
,否则它将无所作为(这是您当前的结果)
目前,您的ajax请求实际上失败了,因为它没有返回预期的JSON数据类型。如果您将数据类型更改为“html”,它将起作用
$.ajax({
type:'POST',
url: 'ok.php',
dataType:'html',
data: {json:addIt},
success:function(data){
$("#results").html(data);
}
});
而且
var addIt = new Object();
应该是
var addIt = {};
我认为问题在于您的
数据类型。通过说json
,您告诉jQuery您期望返回的内容是json
。其中php可能会在标题中将内容类型设置为html。您应该能够删除它,jQuery将自动从响应的标题中找出它。我认为问题在于您的数据类型。通过说json
,您告诉jQuery您期望返回的内容是json
。其中php可能会在标题中将内容类型设置为html。您应该能够删除它,jQuery将自动从响应的标题中找出它。当您在成功中警告数据变量时,您有什么功能当您在成功中警告数据变量时,您有什么功能更改数据类型确实有帮助。谢谢你的信息+1更改数据类型确实有帮助。谢谢你的信息+1@aOviedo,我将研究如何按照您提到的方式添加stringify。谢谢你的帮助。@aOviedo,我会按照你提到的方式添加stringify。谢谢你的帮助。