您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用AJAX加载跨域端点

使用AJAX加载跨域端点

有一些方法可以克服 障碍:

有一些插件可以帮助处理 请求:

克服此问题的最佳方法是,在后端创建自己的代理,以便代理将指向其他域中的服务,因为在后端不存在 限制。但是,如果您不能在后端执行此操作,请注意以下提示

使用第三方代理不是安全的做法,因为它们可以跟踪您的数据,因此可以与公共信息一起使用,但 与私有数据一起使用。

下面显示代码示例使用 和 ,它们都是 简写方法

CORS Anywhere是一个 ,它将CORS标头添加到代理请求中。要使用API??,只需在URL前面加上API URL。(支持 :见github仓库

如果要在需要时自动启用跨域请求,请使用以下代码段:

$.ajaxPrefilter( function (options) {
  if (options.crossDomain && jQuery.support.cors) {
    var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
    options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
    //options.url = "http://cors.corsproxy.io/url=" + options.url;
  }
});

$.get(
    'http://en.wikipedia.org/wiki/Cross-origin_resource_sharing',
    function (response) {
        console.log("> ", response);
        $("#viewer").html(response);
});

无论起源如何,都是 访问。这是anyorigin.com的开源替代方案。

要从 google.com 获取数据 您可以使用以下代码段:

// It is good specify the charset you expect.
// You can use the charset you want instead of utf-8.
// See details for scriptCharset and contentType options: 
// http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings
$.ajaxSetup({
    scriptCharset: "utf-8", //or "ISO-8859-1"
    contentType: "application/json; charset=utf-8"
});

$.getJSON('http://whateverorigin.org/get?url=' + 
    encodeURIComponent('http://google.com') + '&callback=?',
    function (data) {
        console.log("> ", data);

        //If the expected response is text/plain
        $("#viewer").html(data.contents);

        //If the expected response is JSON
        //var response = $.parseJSON(data.contents);
});

CORS Proxy是一个简单的 ,可为任何网站启用CORS请求。它允许您站点上的javascript代码访问其他域上的资源,这些资源通常由于同源策略而被阻止。

它是如何工作的?CORS Proxy利用了跨域资源共享功能,该功能是随HTML 5一起添加的。服务器可以指定它们希望浏览器允许其他网站请求其托管的资源。CORS代理只是一个HTTP代理,它在响应中添加标头,说“任何人都可以请求此请求”。

这是实现目标的另一种方法(请参阅www.corsproxy.com)。您所要做的就是删除 和 从要代理的URL中添加,并在URL前面加上www.corsproxy.com/

$.get(
    'http://www.corsproxy.com/' +
    'en.wikipedia.org/wiki/Cross-origin_resource_sharing',
    function (response) {
        console.log("> ", response);
        $("#viewer").html(response);
});

最近,我发现了这个,它涉及各种面向安全性的跨源远程共享实用程序。但这是一个以Flash为后端的黑盒子。

您可以在此处查看其运行情况:CORS代理浏览器 在GitHub上获取代码koto / cors-proxy-browser

其他 2022/1/1 18:13:38 有508人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶