作为this问题的修复,我想知道是否有人知道在发送之前修改XMLHttpRequest对象的URL的方法。
理想情况下,我想在beforeSend
事件(使用jQuery $.ajaxSetup)中更改uri(编码),而不是在我使用$ .ajax
谢谢!
答案 0 :(得分:4)
根据the documentation,beforeSend()
方法作为参数传递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。希望上面的修改对您有用。