本地主机已被 cors 策略请求标头字段内容类型阻止访问控制不允许
Posted
技术标签:
【中文标题】本地主机已被 cors 策略请求标头字段内容类型阻止访问控制不允许【英文标题】:local host has been blocked by cors policy request header field content type is not allowed by access control 【发布时间】:2021-11-19 11:53:47 【问题描述】:在 asp.net core 5 中,我使用服务来获取数据并将数据发布到数据库。将列表对象发布到服务时出现此错误。 错误 1.CORS 策略已阻止从源“http://localhost:47717”访问“http://localhost:35020/api/ApiDisplay/InsertDetails”处的 XMLHttpRequest:请求标头字段内容类型不允许预检响应中的访问控制允许标头。 角.js:15697 错误 2. 可能未处理的拒绝:"data":null,"status":-1,"config":"method":"POST","transformRequest":[null],"transformResponse":[null], "jsonpCallbackParam":"callback","processData":false,"crossDomain":true,"contentType":"application/json","url":"http://localhost:35020/api/ApiDisplay/InsertDetails", "dataType":"json","data":"CustomerID":"114","CustomerName":"Sridhar","Address":"Nalgonda","StateId":"1","CityId":" ","LandMark":"CrossRoad","Mobile":"1541454145","headers":"Accept":"application/json, text/plain, /","Content-类型":"application/json;charset=utf-8","statusText":"","xhrStatus":"error"。
我很容易在服务中获得 id,但不是这个对象。在 console.log 我得到了数据。在警报中它显示对象:对象。
这是我的控制器
[HttpPost] [Route("api/[controller]/[action]")]
public IActionResult InsertDetails([FromBody] CustomerDetail cd)
var result = disrep.InsertDet(cd);
if (result.Count() > 0)
return Ok(result);
else
return NoContent();
//cd = result;
//return cd;
这是我在 .js 文件中的代码
this.insertdetails = function (Customer)
alert('insertdetails');
var request = $http(
method: "POST",
processData: false,
crossDomain: true,
contentType:"application/json",
url: baseUrl + "/api/ApiDisplay/InsertDetails",
dataType: "json",
data: Customer,
);
return request;
在startup.cs中
services.AddCors(options =>
options.AddPolicy(allowSpecificOrigins,
builder =>
builder.WithOrigins("https://localhost:47717")
.AllowAnyHeader()
.AllowAnyMethod();
);
);
【问题讨论】:
【参考方案1】:试试这个:
将此代码放在ConfigureServices的顶部
public void ConfigureServices(IServiceCollection services)
services.AddCors(o => o.AddPolicy("AllowAnyOrigins", builder =>
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
));
...........
app.UseCors 应该放在 app.UseRouting() 和 app.UseAuthorization() 之间
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
.....
app.UseRouting();
app.UseCors("AllowAnyOrigins");
app.UseAuthentication();
app.UseAuthorization();
....
如果它工作,然后尝试替换
builder.AllowAnyOrigin()
与
builder.WithOrigins("https://localhost:47717")
【讨论】:
您的更改没有进展。以上是关于本地主机已被 cors 策略请求标头字段内容类型阻止访问控制不允许的主要内容,如果未能解决你的问题,请参考以下文章
来自来源的 XMLHttpRequest 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
Angular7:已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
我的网页的一项功能已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
React 组件已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
反应对 XMLHttpRequest 的访问已被 CORS 策略阻止 请求的资源上不存在“Access-Control-Allow-Origin”标头