从$ .get请求访问jqXHR对象属性

时间:2017-04-05 17:41:00

标签: javascript jquery

我有一个看起来像这样的简单函数:

function getURL(url) {
  return $.get(url);
}

我正在调用(在其他地方,特别是在单元测试中):

var url = getURL("/page/stuff")
    console.log(url);

所以console.log(url)工作,并返回statustext / status等......就像它应该的那样。

但是,如何访问jqXHR对象的属性。例如,url.status返回undefined。

这是装载问题吗?虽然在我真正收到页面之前进行了日志记录...如果是这样,那么打印出来的只是url变量会返回对象吗?

2 个答案:

答案 0 :(得分:2)

  

如何访问jqXHR对象的属性。例如,url.status返回undefined。

在请求完成后访问它:

var jqxhr = getURL("/page/stuff");

jqxhr.always(function (result) {
    console.log(jqxhr.status);
});
  

这是装载问题吗?虽然在我真正收到页面之前即时记录...

  

如果是这样,如何打印掉url变量只返回对象?

因为$.get()返回表示请求的对象。但是在请求完成之前,它的一些属性不会被填充。

答案 1 :(得分:1)

jQuery.get()jQuery个promisse,因此您在xhr对象上有Deferred个选项。

我想你想要这个:

var _request = function( url ) {
    return $.get( url );
};

_request('https://httpbin.org/get').done(function( data, textStatus, jqXHR ) {
    console.info( jqXHR.status );
});

此处提供更多信息:https://api.jquery.com/jQuery.ajax/#jqXHR