【问题标题】:Getting Cross Origin Error While Calling API From Jquery AJAX从 Jquery AJAX 调用 API 时出现跨域错误
【发布时间】:2018-11-26 07:03:17
【问题描述】:

从 AJAX Jquery 调用 API 时出现以下错误。

访问 XMLHttpRequest 在 'https://www.demo.in/rest/employee/mapping/v3/9714620362' 来自原点 'http://localhost:8191' 已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源

我无权更改 API 编码。我只有来自 javascript 或 Jquery 的 API 调用。 我使用以下代码调用 REST API。但我不工作。

$.ajax({
        url: 'https://www.demo.in/rest/employee/mapping/v3/9714620362',
        headers: {
            'Access-Control-Allow-Origin': '*',
            'Content-Type':'application/json'
        },
        method: 'GET',
        dataType: 'json',
        data: '',
        success: function(data){
          console.log('succes: '+data);
        }
      });

【问题讨论】:

    标签: javascript jquery ajax cross-domain jquery-ajaxq


    【解决方案1】:

    将 dataType 更新为“jsonp”,它应该可以工作

    $.ajax({ url: 'https://www.demo.in/rest/employee/mapping/v3/9714620362', headers: { 'Access-Control-Allow-Origin': '*', 'Content-Type':'application/json' }, method: 'GET', dataType: 'jsonp', data: '', success: function(data){ console.log('succes: '+data); } });

    【讨论】:

    • 跨域读取阻塞 (CORB) 阻止了 MIME 类型为 application/json 的跨域响应 demo.in/rest/employee/mapping/v3/…。有关详细信息,请参阅chromestatus.com/feature/5629709824032768
    • 在这种情况下使用 CORS Anywhere CORS Anywhere 是一个 node.js 代理,它添加了 CORS 支持 要使用 API,只需在 URL 前面加上 API URL。要在需要时启用跨域请求,请使用以下 sn -p:https://codeshare.io/5OXOJj
    • been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2014-06-25
    • 1970-01-01
    • 2011-12-31
    • 2020-01-21
    • 1970-01-01
    相关资源
    最近更新 更多