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");