如何在CORS调用中将jQuery ajax自定义头传递给.NET Core Web Api应用程序?

时间:2017-04-03 22:12:39

标签: jquery asp.net-core asp.net-core-mvc asp.net-core-webapi asp.net-core-middleware

在.NET Core 1.1 Web Api应用程序中,CORS可以接受来自特定URL /域的请求并接受标题。

  services.AddCors(options =>
  {
    options.AddPolicy("CORS_LocalHost", builder => builder
    .WithOrigins("http://localhost:5000")
    .WithHeaders("accept", "content-type", "origin", "app-key")
    .AllowAnyMethod()
    );
  });

使用jQuery .ajax()从另一个.NET Core Web App启动AJAX请求,并在“标题”中定义自定义“app-key”标头。

var request = $.ajax({
  type: "GET",
  url: 'http://localhost:5050/resources/category/1',
  cache: false,
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  headers: { 'app-key': 'testapikey' }
});

并且Web Api域已成功接收请求,并使用此类

等自定义中间件进行处理
if (!httpContext.Request.Headers.Any(h => h.Key == APPKEY_HEADER))

确定是否存在自定义“app-key”标头。但是,自定义“app-key”标头不是请求中的九(9)个标头之一

enter image description here

我也试过

beforeSend: function(xhr){xhr.setRequestHeader('app-key', 'testapikey');},

w /相同的结果。

是否需要在.NET Core Web Api项目中设置jQuery ajax选项?

注意:此端点已经过邮差成功测试。

0 个答案:

没有答案