Javascript 将post请求数据转换为.each()函数
我正在使用这个代码Javascript 将post请求数据转换为.each()函数,javascript,arrays,each,Javascript,Arrays,Each,我正在使用这个代码 $.post("assets/scripts/chat/load_convos.php",{}, function(data) { $.each(data, function(index, value) { alert(value); }); ,并且数据的返回是[57,49],但它什么都不做。。。如果我将数据替换为$之后的数据,则每个(替换为[57,49]会起作用,但在数据就位时不会起作用 我不是Javascript的高手,所以非常感谢所有的帮助。你说的“数据是[57
$.post("assets/scripts/chat/load_convos.php",{}, function(data) {
$.each(data, function(index, value) {
alert(value);
});
,并且数据的返回是[57,49]
,但它什么都不做。。。如果我将数据
替换为$之后的数据,则每个(
替换为[57,49]
会起作用,但在数据
就位时不会起作用
我不是Javascript的高手,所以非常感谢所有的帮助。你说的“数据是[57,49]
”是什么意思
我的猜测是,您需要一个(JSON)对象,但您只收到一个字符串。我的第二个猜测是,jQuery以错误的方式解释了结果,没有将返回标识为JSON字符串,因此,没有隐式地解析它
检查请求的内容类型。在调用每个
循环之前,尝试手动调用data=JSON.parse(data);
。实际上,jQuery应该能够将该字符串识别为JSON结果本身,所以我还想知道您使用的是哪个jQuery版本
另一种方法是调用.getJSON()
,而不是直接调用.post()
。您可以使用JSON.parse
或eval('('+response+'));
但解决方案可能是向jQuery或您正在使用的库指定响应为JSON
顺便说一句,并非所有浏览器都有JSON对象,因此如果您的库没有提供它,您将不得不使用eval解决方案。指定JSON作为您的数据类型
Example:发布到test.php页面并获取已更新的内容
以json格式返回
(“约翰”,“时间”=>“下午2点”);?>)。
$.post(“test.php”,{“func”:“getNameAndTime”},
功能(数据){
console.log(data.name);//John
console.log(data.time);//下午2点
}“json”);
Example: Posts to the test.php page and gets contents which has been
returned in json format
(<;?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>).
$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");