javascript - 从源 '...' 访问位于 'http://localhost' 的 XMLHttpRequest 已被 CORS 策略阻止

标签 javascript api tomcat cors activiti

<分区>


我正在尝试使用 javascript 演示 api 调用以获得 Json 结果。这是我所做的:

<!DOCTYPE html>
<html>
    <head>
    </head>
        <script src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
    <body>
        <div class="render-form">
            <script>
                $(document).ready(function() {
                    $.ajax({
                        type: 'GET',
                        headers:{    
                            'Accept': 'application/json',
                            'Content-Type': 'application/json',
                            'Access-Control-Allow-Origin': '*' 
                        },
                        url: 'http://127.0.0.1:8080/activiti-rest/service/form/form-data?taskId=21159',
                        dataType: 'json',
                        success: function (data) {
                            alert(JSON.stringify(data));
                        }
                    });
                })
            </script>
        </div>
    </body>
</html>

但是当我运行它的时候,我得到了一个错误:

Access to XMLHttpRequest at 'http://127.0.0.1:8080/activiti-rest/service/form/form-data?taskId=21159' from origin 'http://localhost' has 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.

在这里搜索了很多帖子后,我补充说:

headers:{    
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Access-Control-Allow-Origin': '*' 
},

但它仍然无法解决该错误。我该如何解决这个问题?
如有任何回复,我们将不胜感激!
非常感谢!

最佳答案

如果您在 Tomcat 上运行 Activiti 框架,您可以通过过滤器在 Tomcat 中配置 CORS 支持。您需要将此过滤器添加到您的 web.xml 文件中并对其进行配置以满足您的要求。

查看 Tomcat 的文档:
http://tomcat.apache.org/tomcat-8.0-doc/config/filter.html#CORS_Filter

另请注意:

  • 正如@Quentin 在评论中指出的那样,您使用的 jQuery 版本已有 5 年历史,而且已经过时了。
  • 您在 ajax 请求中使用的 Access-Control-Allow-Origin header 是一个响应 header ,而不是请求 header ,因此它应该是服务器在响应中返回。您不能在请求中使用响应 header 。

关于javascript - 从源 '...' 访问位于 'http://localhost' 的 XMLHttpRequest 已被 CORS 策略阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55627247/

相关文章:

javascript - 加载特定包含的php文件中的js文件

javascript - 停止显示内联文本

javascript - 如何强制 nvd3 显示与 graph-nvd3 上绘制的值相同的刻度数

api - 在 REST API 中使用 ?参数的问号?

jsp - 从 jsp <href> 链接调用 Servlet 无效

java - 用于清理 tomcat 目标文件夹和 war 文件的 Maven 插件

javascript - Ajax 将 bool 值与 HTML 一起从服务器传递到具有 HTML 数据类型的客户端

javascript - 如何创建一个对象数组,其中每个对象有 4 个值?

javascript - 为什么有些C# api方法需要[HttpPost]而有些则不需要?

tomcat - Wicket URL with::在 MS Azure 下的 Tomcat 上失败