小编sid*_*ker的帖子

使用HTTP状态代码403在tomcat 8中阻止交叉原始请求

它似乎是一个已知的问题,关于这个主题存在很多问题,但是,我的情况非常奇怪.我有一个部署在tomcat 8.0.36上的简单Web应用程序.我已正确配置CORS:

<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

浏览器阻止了跨源请求:

请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" https://www.mytestpage.com "访问.响应具有HTTP状态代码403.

在tomcat日志文件中,我也看到403的响应代码.有趣的是,在跨源请求的情况下,我的应用程序的代码永远不会被执行.在到达我的申请之前,请求被阻止,并且立即发送403.我在tomcat面前没有apache,它是简单的tomcat.我尝试了很多东西,包括将原点列入白名单并指定允许的标题 - 没有任何帮助.我还尝试以编程方式设置标头,直到我发现从不执行跨源请求的代码.

UPD:结束点接受POST请求.这些POST请求作为XmlHttpRequests从JS片段发送.

有什么想法可以吗?

ps我可以成功获得相同的原始请求.

post cors http-status-code-403 tomcat8

7
推荐指数
1
解决办法
1万
查看次数

JS Fetch API禁用SSL证书

我使用Fetch API来获取URL的内容.对于我的内部开发,我试图连接到开发服务器,我收到一个错误.

此服务器的证书无效.您可能连接到假装为"xxx.com"的服务器,这可能会使您的机密信息面临风险.

如何为内部用途禁用SSL /证书检查?或者我有一个xxx.crt文件,如何安装或传递它以获得成功响应.

javascript certificate fetch-api

7
推荐指数
1
解决办法
1599
查看次数

为什么'x-www-form-urlencoded'以'x-www'开头,当其他标准内容类型没有?

我知道在过去,自定义标题名称使用前缀"X-"是标准的(我知道它不再被认为是标准的),但我一直无法找到是否有任何标题此命名约定与值之间的关系("application/x-www-form-urlencoded").它是作为后来采用的自定义内容类型值开始的吗?

我在这里找到了这个链接,这当然很有趣,但一直无法找到我的问题的答案.

有人知道这个前缀被选中的原因,以及它的含义是什么?

w3c specifications http http-headers mime-types

7
推荐指数
2
解决办法
2195
查看次数

如何使用Angular 2在POST上启用ASP.NET MVC 4中的跨源请求

我实际上正在努力用CORS发出POST请求.

我实际上是一个在我的控制器内部的方法上添加正确响应头的类

using System;
using System.Web.Mvc;

public class AllowCrossSiteAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:4200");
        filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Headers", "*");
        filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Credentials", "true");

        base.OnActionExecuting(filterContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

我就是这样用的

[AllowCrossSite]
public ActionResult GetReportParameters(string IdRapport)
Run Code Online (Sandbox Code Playgroud)

我得到了预期的结果 在此输入图像描述

但问题是当我尝试使用自定义标头发出POST请求以传递此特定内容类型时

'Content-Type': 'application/json; charset=utf-8'
Run Code Online (Sandbox Code Playgroud)

我实际上得到了这个响应头

在此输入图像描述

因此,即使我正确地进入属性类,也就像标题没有做任何事情一样.

这是我在Angular 2服务中的前端

const headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8' });
const options = new RequestOptions({ headers: headers , withCredentials: true });

const mock = {
  name: 'TitreRegroupement1',
  visible: false,
  type: 'System.String',
  value: 'Test'
};

// tslint:disable-next-line:max-line-length
const …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc cors asp.net-mvc-4 angular

7
推荐指数
1
解决办法
5787
查看次数

Google Maps API:请求的资源上没有"Access-Control-Allow-Origin"标头

我已经看到多个人提出这个问题了,没有一个答案对我有用.

我正在尝试使用react/axios对google maps api进行API调用.

这是我的获取请求:

componentDidMount() {
  axios({
   method : 'get',
   url : `http://maps.googleapis.com/maps/api/js?key=${key}/`,
   headers: {
     "Access-Control-Allow-Origin": '*'
     "Access-Control-Allow-Methods": 'GET',
   },
  })
 .then(function (response) {
  console.log(response);
 })
 .catch(function (error) {
  console.log(error);
 });
}
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/js?
key=xxxxxxxxx/. Response to preflight request doesn't pass access control 
check: No 'Access-Control-Allow-Origin' header is present on the 
requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

我读过其他人都指向https://www.html5rocks.com/en/tutorials/cors/的文章con CORS

但我找不到我的问题的答案.

google-maps xmlhttprequest google-maps-api-3 cors axios

7
推荐指数
1
解决办法
9359
查看次数

找不到 HttpConfiguration 方法 EnableCors

在一个项目上启用 CORS,尝试在另一个现有项目上执行此操作,但是在编译期间找不到“EnableCors”方法:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.EnableCors();
Run Code Online (Sandbox Code Playgroud)

确切的编译失败错误消息是

“HttpConfiguration”不包含“EnableCors”的定义,并且找不到接受“HttpConfiguration”类型的第一个参数的扩展方法“EnableCors”(您是否缺少 using 指令或程序集引用)

我在这个项目中做了与另一个项目相同的事情:

<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.3" targetFramework="net451" />
Run Code Online (Sandbox Code Playgroud)

不过,这个项目中有 odata ……我不确定这是否是导致它失败的主要区别。

有任何想法吗?我也试过

Update-Package -reinstall Microsoft.AspNet.WebApi.Cors 
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-web-api

7
推荐指数
1
解决办法
5634
查看次数

Webpack dev服务器React内容安全策略错误

我在webpack-dev-server上运行了我的单页应用程序.我可以加载和重新加载我的进入路线localhost:8080,它每次都有效.但是,我localhost:8080/accounts/login只能通过应用程序内的链接加载localhost:8080/accounts/login,即每当我从浏览器刷新按钮重新加载我得到

Cannot GET /accounts/login/
Run Code Online (Sandbox Code Playgroud)

作为服务器响应,我得到了控制台

内容安全策略:页面的设置阻止了自身加载资源("default-src http:// localhost:8080 ").来源:;(函数installGlobalHook(window){....

这是我在单页应用的index.html上的CSP标题

<meta http-equiv="Content-Security-Policy"
  content="default-src * 'self' 'unsafe-inline' 'unsafe-eval'">
Run Code Online (Sandbox Code Playgroud)

我也没有使用任何devtool我的webpack.config.json.我错过了什么.

content-security-policy reactjs webpack webpack-dev-server

7
推荐指数
1
解决办法
5171
查看次数

获取API;如果响应是不透明的,为什么要使用“no-cors”模式?

我读了这个问题和 这个问题。前者只解释了“no-cors”与“same-origin”;后者建议 'no-cors' 没有用,因为不透明响应(Javascript 无法读取/执行任何有用的操作):

你基本上从不想在实践中使用 mode: 'no-cors'——除非在一些非常有限的情况下。那是因为设置模式:'no-cors' 实际上对浏览器说的是,“在任何情况下都阻止我的前端 JavaScript 代码查看响应正文和标题的内容。” 在大多数情况下,这显然不是您想要的。

有人可以告诉我们这些“有限情况”的例子是什么,我们希望使用“无cors”(即使响应是不透明的?)

我能想到的唯一情况是一种单向通信;如果客户端向服务器发送 GET 或 POST 就足够了,那么服务器就可以跟踪请求的发生;(例如,增加请求计数器);...

...那么响应是一个 OpaqueResponse 就足够了;即客户端只需要知道请求是否成功(状态 200),不需要任何负载响应。

我的想法是一个有效的例子吗?有人可以推荐其他可能性/用例/'no-cors'用法的例子吗?

fetch cors fetch-api

7
推荐指数
1
解决办法
2883
查看次数

跨源请求的 502 bad gateway 错误

我正在使用该serverless框架将我的 lambda 部署到 AWS,并且已经能够通过 Postman 成功地将 POST 请求运行到与我的 lambda 函数关联的 API 网关,但是当我尝试从表单提交(AJAX 请求)运行 POST 请求时本地服务器我收到 502 错误消息,

Access to XMLHttpRequest at 'https://*id*.execute-api.us-east-1.amazonaws.com/prod/message' from origin 'http://localhost:2368' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)

这是我没想到的,因为cors我的 set 中有属性serverless.ymlto true,它为 HTTP 端点设置 CORS 配置。这是函数 yaml 设置:

functions:
  email:
    handler: handler.sendEmail
    events:
      - http:
          path: message
          method: post
          cors: true
Run Code Online (Sandbox Code Playgroud)

这是 jQuery AJAX 请求:

$.ajax({
    type: 'POST',
    url: 'https://*id*.execute-api.us-east-1.amazonaws.com/prod/message',
    crossDomain: …
Run Code Online (Sandbox Code Playgroud)

ajax aws-lambda aws-api-gateway serverless-framework

7
推荐指数
1
解决办法
2万
查看次数

Flutter InAppWebView 如何禁用跨源策略?

我正在使用 InAppWebView 通过监听 onLoadResource 来制作视频下载应用程序,甚至抓取用户播放的视频并在 iframe 中删除视频,由于跨源政策,我无法获取 iframe 中的 url (.mp4, .m3u8......),我确实将allowUniversalAccessFromFileURLs和allowFileAccessFromFileURLs设置为true,但没有结果我无法获取iframe调用的资源:/,这是我的初始选项:

initialOptions: InAppWebViewGroupOptions(
                  android: AndroidInAppWebViewOptions(
                    supportMultipleWindows: true,
                    offscreenPreRaster: true,
                    allowUniversalAccessFromFileURLs: true,
                    allowFileAccessFromFileURLs: true,
                  ),
                  crossPlatform: InAppWebViewOptions(
                    useOnLoadResource: true,
                    debuggingEnabled: true,
                    userAgent:
                        "Mozilla/5.0 (Linux; Android 9; Redmi Note 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Mobile Safari/537.36",
                    javaScriptEnabled: true,
                    javaScriptCanOpenWindowsAutomatically: true,
                  )),
        
Run Code Online (Sandbox Code Playgroud)

如果任何非常熟悉 inappwebview 或 flutter 的人能告诉我如何在 flutter 中禁用跨源策略或如何在不使用代理的情况下监听我的应用程序 http 请求...,我将不胜感激

android cross-domain same-origin-policy flutter flutter-inappwebview

7
推荐指数
1
解决办法
1657
查看次数