我有this question中提到的表格,但是提交后会得到
跨域请求被阻止:“同源起源”策略禁止读取http://localhost:1113/api/loans处的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)。
和
跨域请求被阻止:“同源起源”策略禁止读取http://localhost:1113/api/loans处的远程资源。 (原因:CORS请求未成功。)
我之前通过将其添加到Configure
中API的Startup
中来解决了另一个API调用:
app.UseCors(options => options.WithOrigins("*").AllowAnyMethod());
但是现在由于某种原因,它阻止了操作所在的呼叫
// POST api/loans
[HttpPost]
public void Post(Loan loan)
{
_context.Loans.Add(loan);
_context.SaveChanges();
}
为什么?
答案 0 :(得分:1)
尝试使用 let highest = a.last!
^
()
[FromBody]
当您尝试发送时,请使用JSON.stringify而不是直接使用
public void Post([FromBody] Loan loan)
答案 1 :(得分:1)
这是一个模糊的问题,因此我将给出一些提示。
首先通过打开所有异常开始 有可能在cors发生之前获得例外,因此您可以申请 在添加cors标头之前返回了错误响应。
.Net-Core require属性用于解决如何对数据进行模型绑定。因此,您的http post方法应该要求[FromForm]或[FromBody]属性
[HttpPost]
public void Post([FromForm] Loan loan)
{
_context.Loans.Add(loan);
_context.SaveChanges();
}
确保您实际上正在使用自己的cors政策。除非您使用的是.Net Core的旧版本,否则您应该通过Configure Services方法而不是configure方法来实现cors策略
尝试像这样实施您的政策:
services.AddCors(options =>
{
options.AddPolicy(DEFAULT_POLICY_NAME, policy =>
{
policy.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
然后在您的configure方法中,仅使用策略名称
app.UseCors(DEFAULT_POLICY_NAME);