Jquery 修改XMLHttpRequests以使其跨域

Jquery 修改XMLHttpRequests以使其跨域,jquery,cross-domain,Jquery,Cross Domain,我正在处理一个应用程序的代理。我需要将特定页面上的所有AJAX调用转换为跨域调用,以便我的代理可以完成这些AJAX调用 我正在研究将JQuery.beforeSend与window绑定的可能性,有三个问题: 我如何实际添加额外的数据类型参数:jsonp;指向页面上的所有AJAX调用 这是将函数与所有XMLHttpRequests绑定,还是仅通过jQuery$.ajax、$.get、$.post等函数进行请求绑定 如果我添加数据类型:jsonp;它是否只会将此添加到通过jQuery完成的调用或通过

我正在处理一个应用程序的代理。我需要将特定页面上的所有AJAX调用转换为跨域调用,以便我的代理可以完成这些AJAX调用

我正在研究将JQuery.beforeSend与window绑定的可能性,有三个问题:

  • 我如何实际添加额外的数据类型参数:jsonp;指向页面上的所有AJAX调用

  • 这是将函数与所有XMLHttpRequests绑定,还是仅通过jQuery$.ajax、$.get、$.post等函数进行请求绑定

  • 如果我添加数据类型:jsonp;它是否只会将此添加到通过jQuery完成的调用或通过任何库完成的所有调用或从浏览器发起的所有调用

  • 有没有更好的办法。任何其他解决这个问题的建议。因为我不知道外部HTML,所以通过AJAX更改它调用的URL更加困难,因此在我的情况下,通过我的代理域路由它不是首选的方式

    谢谢

  • 您可以隐藏现有的jQuery方法

    var jQueryAjax = $.ajax;
    
    $.ajax = function(settings) {
       settings.type = 'jsonp';
       jQueryAjax(settings);
    }
    
    我认为这应该行得通

  • ajax()
    是jQuery中ajax请求的低级接口,但我不确定它们是否调用它
    getJSON()
    似乎在调用
    get()

  • 添加
    jsonp
    只有在您使用的服务支持jsonp时才有用

  • 将数据类型设置为jsonp(数据类型:“jsonp”)
  • 使用jsonp,您只能处理GET请求,请参见3
  • 仅适用于将jsonp添加为数据类型的调用

  • 你好,Alex,谢谢,如果我在所有请求中添加一个额外的标题(来源:)怎么样。如果我添加请求所在页面的域,会有帮助吗?你好,Ivo,谢谢,如果我在所有请求中添加一个额外的标题(origin:)怎么样。如果我将请求所在页面的域添加为源标题,会有帮助吗?