这是我的jscript代码: 当我运行它时,我得不到任何响应,firefox webconsole显示正常
dataS = friendMediaArray; // array?
var jsonS = JSON.stringify(dataS);
$(function() {
$("#xbut").click(function() {
var data = {};
data.dataArray = friendMediaArray; // I'm setting it as a property here
var jsonS = JSON.stringify(data);
jQuery.ajax({
type: "GET",
data: {type: "stream", namef: jsonS },
url: 'catch.php',
success: function (msg)
{ alert("OK");alert(data); console.log(data); },
error: function (err)
{ alert(err.responseText)}
});}); });
catch.php
<?php
if($_GET['type']=='stream'){
$obj = json_decode($_GET['namef']);
for($i=0;$obj[$i];$i++){
echo $obj[$i]->{'namef'}." ";
}
}
json_decode($_GET['namef']);
?>
即使使用var_dump($ _ POST)我也未定义 好像什么都没发送
GRT罗伯特
答案 0 :(得分:1)
您正在使用类型:“GET”,请尝试:
var_dump($_GET);
答案 1 :(得分:1)
dataString = friendMediaArray; // array?
如果你的数据是一个数组,你真的不应该用&#34; string&#34;来命名它!
var jsonString = JSON.stringify(dataString);
现在,您的jsonString
是一个真正的字符串,
jsonString[field.name] = field.value;
将导致无。您无法设置原始字符串值的属性。相反,您需要将它们设置为对象的属性,然后可以将其序列化:
$(function() {
$("#xbut").click(function() {
var data = {};
data.dataArray = friendMediaArray; // I'm setting it as a property here
$.each($(':input').serializeArray(), function(i,field){
data[field.name] = field.value;
});
var jsonString = JSON.stringify(data);
jQuery.ajax({
type: "GET",
data: {type: "stream", namef: jsonString },
...
});
});
});
另请注意,当您使用GET
作为网址参数发送数据时,$_POST
显然会为空。但是,json_decode($_GET['namef']);
应该为您提供所需的对象。