当前位置: 首页 > 知识库问答 >
问题:

Web API CORS支持不在http上工作

严易安
2023-03-14

我已经在我的Web API控制器上启用了CORS支持,它在https上运行良好,但在http上,我仍然收到请求的资源错误上存在的o“Access Control Allow Origin”头。

在WebApiConfig中,我使用以下行启用了cors:

// Allow cross site javascript calls
config.EnableCors();

我的控制器类是这样介绍的:

 [EnableCors("*","*","*")]
 public class ExternalDataController : ApiController    

那么如何在http和https上启用CORS呢?

在azure原始http日志上,创建一个调用时会出现以下行:

2015-05-06 05:53:15 ~1PROJECTX GET /diagnostics/settings X-ARR-LOG-ID=d5d487c0-8d32-4103-98cb-37fd7b022942 443 - 137.116.210.73 Portal-Exp/5.11.2.704+(Websites)+Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML%2C+like+Gecko)+Chrome/42.0.2311.90+Safari/537.36+OPR/29.0.1795.47 - - projectx-development.scm.azurewebsites.net 200 0 0 733 1215 3921
2015-05-06 05:53:20 ~1PROJECTX POST /diagnostics/settings X-ARR-LOG-ID=599cb771-d399-49ee-89a2-6804af7c2712 443 - 137.116.210.73 Portal-Exp/5.11.2.704+(Websites)+Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML%2C+like+Gecko)+Chrome/42.0.2311.90+Safari/537.36+OPR/29.0.1795.47 ARRAffinity=a32808ec0f09a64a5ce1705808bf8a2fb0c447c78db8498153641c9469a96a96 - projectx-development.scm.azurewebsites.net 204 0 0 500 1497 156
2015-05-06 05:53:21 ~1PROJECTX GET /diagnostics/settings X-ARR-LOG-ID=6d7bcfd4-aeeb-4c02-9f02-cf5bd54d2189 443 - 137.116.210.73 Portal-Exp/5.11.2.704+(Websites)+Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML%2C+like+Gecko)+Chrome/42.0.2311.90+Safari/537.36+OPR/29.0.1795.47 ARRAffinity=a32808ec0f09a64a5ce1705808bf8a2fb0c447c78db8498153641c9469a96a96 - projectx-development.scm.azurewebsites.net 200 0 0 732 1301 78

共有2个答案

孟建木
2023-03-14

抱歉,我没有在控制器级别检查。

我在WebApi配置级别有以下内容,它正按预期工作。

 var cors = new EnableCorsAttribute("*", "*", "*") ;
            config.EnableCors(cors);

同样,如果您使用的是基本身份验证,那么请确保您也设置了SupportsCredentials值

        var cors = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };
龙正初
2023-03-14

你用OWIN吗?只需在配置中启用CORS方法

    public void Configuration(IAppBuilder app)
    {
        #region CORS

        app.UseCors(CorsOptions.AllowAll); 

        #endregion 
 类似资料:
  • 我创建了一个@RestController并映射了一个@PostMapping请求。 HTTP请求 模型类 我正在使用邮差作为其余的客户。 答复:

  • 我注意到一件奇怪的事情,显然Firefox说它支持HTTPS上的Brotli,但不支持HTTP?Brotli与gzip类似,但效率更高,为什么它会将其限制为HTTPS?在HTTPS选项卡上,我看到: 他被派去了。但在另一个网站上,我没有看到。为什么它不能做Brotli压缩HTTP?

  • 好的,所以我有以下在我的清单文件,但我仍然得到明文是不允许的IP地址192.168,这是一个本地IP地址范围,请帮助我疯了。我正在使用Xamrain表单。 我的Manafest文件如下 我在这里也有作为一个理智检查

  • 问题内容: 我有以下代码: 我正在尝试查询(例如)。 我不断收到此错误: 什么会导致此错误,我该如何解决? 问题答案: 不知道出了什么问题,但是当我尝试使用库执行相同的操作时,它会起作用: 请注意,两者之间存在差异,我的代码简单得多,它不适用于Cookie,并且不会伪装Safari浏览器。 如果您需要将Cookie与一起使用,则可以在其中找到很好的支持。

  • 一个好的HTTP缓存策略可以极大地提高一个web应用的性能及客户端的体验。谈到HTTP缓存,它主要是与HTTP的响应头'Cache-Control'相关,其次另外的一些响应头比如'Last-Modified'和'ETag'等也会起一定的作用。 HTTP的响应头'Cache-Control'主要帮助私有缓存(比如浏览器端缓存)和公共缓存(比如代理端缓存)了解它们应该如果缓存HTTP响应,以便后用。

  • 到目前为止,我们还没有在我们项目上使用过分支。然而你并不知道,我们实际已经工作在了一个分支上了。这是因为在 Git 上的分支功能并不是可选的,你永远会工作在一个分支中的(当前的 “active”,或者 “checked out”,或者 “HEAD”分支)。 那么 Git 是如何知道你当前在哪个分支上工作的呢? “git status” 命令输出的第一行会向我们显示出 “在主分支(branch ma