当readystate为4时,如何执行操作?

时间:2014-06-29 16:55:07

标签: javascript json

过去2个小时我一直在研究这个问题。当我尝试使用函数解析GET请求时,我收到错误SyntaxError: Unexpected token u。但我一次执行相同的代码一行它工作正常。

我注意到,一旦我创建了一个对象,它的readyState就是1,但是在我保存它并等待一秒后,readyState变为4然后它解析得很好。

我想也许我拉的XmlHttpObject只需要在对象已经在我的计算机上之后与服务器进行通信,就像可能没有完成拉动所有信息一样,一旦信息拉完成就把它变成4。由于这个实现我尝试使用超时功能等待几秒然后尝试解析它,但我仍然无法让它工作!

这是我的代码:

 function pullData(){
  var obj = $.get("https://api.parse.com/1/classes/chats");
  var object_array = JSON.parse(obj.responseText);
      return object_array
    }

2 个答案:

答案 0 :(得分:1)

function pullData(callbackFunction)    
  $.get( "https://api.parse.com/1/classes/chats", function( data ) {
    var object_array = JSON.parse(data);
    callbackFunction(object_array);
  });
}

JavaScript ajax调用是异步的,因此在执行get请求后,你无法在下一行代码中获得结果,因为get请求是在后台执行的。

JQuery有一个很好的文档来了解如何编写ajax请求。 http://api.jquery.com/jquery.get/

答案 1 :(得分:-1)

为什么不试试

function pullData(){
   $.get("YOUR_URL")
   .done(function(data) {
      var object_array = JSON.parse(data); 
      return object_array
  })
}