修改 XMLHttpRequest 对象的 url

psy*_*tik 3 ajax jquery xmlhttprequest

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

理想情况下,我想在事件中更改 uri(对其进行编码)beforeSend(使用 jQuery $.ajaxSetup),而不是在我使用 $.ajax 的每个位置中更改它

谢谢!

Six*_*tto 5

根据文档,该方法将对象作为参数beforeSend()传递,并将其指针设置为 Ajax 请求选项。没有URL 属性,但W3C 文档似乎说该对象的方法可以在给定实例上多次调用:XMLHttpRequestthisXMLHttpRequestopen()

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);
  }
Run Code Online (Sandbox Code Playgroud)

这样做的一个潜在问题是调用会open()清除所有已设置的请求标头,因此您可能需要在其中添加一些额外的代码以重新添加 jQuery 在调用之前设置的标头beforeSend()

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