我正在处理应用程序的代理。我需要将特定页面上的所有AJAX调用转换为跨域,以便我的代理可以完成这些ajax调用。
我正在研究用窗口绑定JQuery.beforeSend的可能性,并有三个问题:
如何实际添加dataType的额外参数:jsonp;到页面上出现的所有AJAX调用。
这会将函数与所有XMLHttpRequests绑定,还是仅通过jQuery $ .ajax,$ .get,$ .post等函数绑定函数
如果我添加dataType:jsonp;它只会将它添加到通过jQuery完成的调用或通过任何库完成的所有调用或来自浏览器的调用
有更好的方法吗?任何其他建议来解决这个问题。由于我不知道外部HTML,更改它通过AJAX调用的URL更加困难,因此通过我的代理域路由它不是我的首选方式。
由于
答案 0 :(得分:1)
您可以隐藏现有的jQuery方法......
var jQueryAjax = $.ajax;
$.ajax = function(settings) {
settings.type = 'jsonp';
jQueryAjax(settings);
}
我认为这应该有效。
ajax()
是jQuery中AJAX请求的低级接口,但我不确定他们是否会调用它。 getJSON()
似乎致电get()
。
添加jsonp
仅在您使用的服务支持JSONP时才有用。
答案 1 :(得分:0)