从$ .ajax对象获取数据

时间:2013-10-20 19:26:18

标签: jquery jquery-deferred

如何从$ .ajax获取数据 例如:

var ajax = $.ajax({
  url: 'http://example.com',
  type: 'GET',
  dataType: 'json'
});

ajax.url // undefined
// But I need
ajax.url // http://example.com

2 个答案:

答案 0 :(得分:1)

你做不到。 jqXHR objects,例如ajax$.ajax()传递给settings的请求选项中没有(大部分?)属性。

但是,您可以单独保留var settings = { url: 'http://example.com', type: 'GET', dataType: 'json' }; var ajax = $.ajax(settings); console.log(settings.url); 并根据需要从中检索请求信息:

settings

并且,如果需要,您可以自己将ajax附加到// ... var ajax = $.ajax(settings); ajax.settings = settings;

console.log(ajax.settings.url);
{{1}}

答案 1 :(得分:0)

测试需要它,所以我这样做了

  var ajax = $.ajax({
    url: '/signin',
    data: { user: 'ButuzGOL' },
    type: 'POST',
    dataType: 'json'
  });
  ajax.abort();
  ajax.always(function() {
    expect(this.type).to.be('POST');
    expect(this.url).to.be('/signin');
    expect(this.data).to.be({ user: 'ButuzGOL' });

    done();
  });