开发者

Cannot get xmlhttprequest.responseText from JQuery

I'm newbie with JQuery.

I got this function

function verify_at_bd() {
  var u = "foo";
  var p = "bar";

  return $.post('auth.php', {
      name: u,
      password: p,
      mobile: ''
    },
    function(result) {
      return result;
    }, 'json');
}

If I开发者_如何学Python do a console.log(verify_at_bd()) I'm getting an xmlhttprequest but cannot access to responseText property. I'm using header("Content-Type: application/json") in the PHP script.

I'm using firefox 3.6 on OS X.


Here goes:

$.ajax({
  type: 'POST',
  url: 'auth.php',
  data: {name: 'foo', password: 'bar', mobile: ''},
  success: function(result, textStatus, xmlhttprequest){
        console.log( $.parseJSON(xmlhttprequest.responseText).status);
    },
  dataType: 'json'
});

That's all.


Well, firstly, the XHR must be in readyState 4 to get responseText.

Secondly, it looks to me like you are abusing $.post(). It is an asynchronous call, you do not process the result of $.post(), you deal with the result in your success method (function(result)).

If you really need the reponseText, then add a few more arguments to your success function and catch the xhr there.

See jquery docs for $.post to see which arg is the xhr.


As @code poet said, you're utilizing the $.post method in an awkward way. It is an asynchronous call, so you can't expect to see the result returned to you immediately until the AJAX POST request completes. If you could post the code you've written to handle the JSON you expect this function to return, it would be easier to advise you on a proper way to structure your $.post response.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜