修改XMLHttpRequest对象的URL

时间:2009-10-20 22:22:57

标签: jquery ajax xmlhttprequest

作为this问题的修复,我想知道是否有人知道在发送之前修改XMLHttpRequest对象的URL的方法。

理想情况下,我想在beforeSend事件(使用jQuery $.ajaxSetup)中更改uri(编码),而不是在我使用$ .ajax

谢谢!

1 个答案:

答案 0 :(得分:4)

根据the documentationbeforeSend()方法作为参数传递XMLHttpRequest对象,其this指针设置为Ajax请求选项。 XMLHttpRequest没有属性作为网址,但W3C documentation似乎表示对象的open()方法可以在给定的实例上多次调用:

beforeSend: function(xhr) {
    // if you're doing authenticated requests, you might have to
    // call the 5-argument form of open() instead
    xhr.open(this.type, this.url.replace( /* whatever with whatever... */ ), this.async);
  }

执行此操作的一个潜在问题是调用open()会清除已设置的所有请求标头,因此您可能必须在其中添加一些其他代码以重新添加jQuery在调用之前设置的标头beforeSend()

编辑:果然。现在我已经看了jQuery source,你是对的:在调用beforeSend()方法之前设置了URL。希望上面的修改对您有用。