[英]CORS Issue: C# API requests work for one domain, but not to the other
[英]Cannot get one of my put requests to work (getting CORS error)
我难以让我的相对简单的PUT请求正常工作。 在我的控制器中,我有一个编辑(Put)方法,它工作正常,但是,我有一个使用的第二个PUT请求,作为拖放重新排序清单中的步骤,此方法正在获取CORS错误/ HTTP 500当我尝试以角度或邮差运行它时。 我很难理解一个例程是如何工作的,但另一个例程是错误的
我已经尝试过调试,并且验证数据是否正确地传递给控制器操作,但它没有保存到数据库,在它到达我的foreach语句后,然后保存,它被炸出来
这是编辑的代码,有效
[HttpPut("{stepId}")]
public async Task<ActionResult> EditStep(int stepId, LogChecklistSteps step)
{
step.Idstep = stepId;
_repo.EditStep(step);
var history = FileHistory(step, "Draft", "Edited a Step");
_repo.Add(history);
await _repo.SaveAll();
return NoContent();
}
这是我遇到问题的代码
[HttpPut("reorder")]
public async Task<ActionResult> ReorderSteps(LogChecklist checklist)
{
foreach(var s in checklist.LogChecklistSteps)
{
_repo.ReorderSteps(s);
}
await _repo.SaveAll();
return NoContent();
}
和我的回购中的代码
public void EditStep(LogChecklistSteps step )
{
_ctx.Entry(step).State = EntityState.Modified;
}
public void ReorderSteps(LogChecklistSteps step)
{
_ctx.LogChecklistSteps.Update(step);
}
public async Task<bool> SaveAll()
{
return await _ctx.SaveChangesAsync() > 0;
}
事实证明我的问题是我的脚手架dbcontext将我的Step字段列为复合键。 这个项目是针对一个旧数据库,设计它的人,使用复合键而不是唯一ID,我在测试系统中修复了这个,一旦我从模型构建器中删除了该字段,我的代码就开始工作了。
谢谢大家查看我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.