Javascript 如何使用jquery';将json字符串传输到另一个页面;什么是ajax方法?
我有一个JSON字符串(javascript中的字符串化对象数组),我打算将其发布到另一个页面,然后从Javascript 如何使用jquery';将json字符串传输到另一个页面;什么是ajax方法?,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我有一个JSON字符串(javascript中的字符串化对象数组),我打算将其发布到另一个页面,然后从$\u post变量中检索它。我使用了json=json.stringify(数组) 结果给了我以下字符串 json = [{"keycodec":68,"eventc":"keydown","timec":1392849542994} {"keycodec":65,"eventc":"keydown","timec":1392849543063}, {"keyc
$\u post
变量中检索它。我使用了json=json.stringify(数组)
结果给了我以下字符串
json = [{"keycodec":68,"eventc":"keydown","timec":1392849542994}
{"keycodec":65,"eventc":"keydown","timec":1392849543063},
{"keycodec":87,"eventc":"keydown","timec":1392849543084}]
现在我用
$( "#other").click(function() {
$.ajax({
url: 'some.php',
type: 'POST',
data: { kite : json}
});
在页面上,我使用了some.php
$kite=json_decode($_POST['kite'],true);
print_r($kite)
但是什么也没有出现。我已经阅读了许多有关此主题的链接,并尝试将ContentType、dataType、processData参数添加到$.ajax()
函数中,但没有任何帮助。这方面如何:
$( "#other").click(function() {
var json = [{"keycodec":68,"eventc":"keydown","timec":1392849542994}
,{"keycodec":65,"eventc":"keydown","timec":1392849543063},
{"keycodec":87,"eventc":"keydown","timec":1392849543084}];
$.ajax({
url: 'test.php',
type: 'POST',
data: "kite=" + JSON.stringify({ kite : json }),
success: function(msg){
alert(msg);
},
failure: function(errMsg) {
alert(errMsg);
}
});
});
在php代码中:
<?php
$obj=json_decode($_POST['kite']);
print_r($obj->{'kite'});
?>
不是以优雅的方式传递json。。
但是通过这种方式,您仍然可以捕获“kite”作为post变量,并解码所需的json字符串。“但是什么都没有显示”您似乎没有对Ajax调用的响应做任何处理。您是否使用过FireBug或Chrome dev工具等工具来查看Ajax请求的响应?您应该在请求的“响应”中看到print_r()语句的结果。正如@Felix King提到的,您没有处理ajax调用的成功响应。
dataType:json
必须添加到ajax调用中。还要使它成为data:json
…而不是包装在{}
@Vikram:No,那么PHP就不能工作了。数据仍然作为表单数据发送,因此您必须将其与键关联(“kite”是这里的键)。由于PHP代码不返回JSON,dataType:'JSON'
是不正确的。