我得到了很多解决方案,没有人帮我。我已经按照所有解决方案设置了所有必需的标题。仍显示以下错误。
无法加载Fetch API http://localhost:25424/api/Employee/DeleteEmployee/1。回应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许来源“http://localhost:7777” 访问。响应具有HTTP状态代码404.如果是不透明的响应 满足您的需求,将请求的模式设置为'no-cors'来获取 CORS禁用的资源。
我的获取请求:
fetch('http://localhost:25424/api/Employee/DeleteEmployee/' +1, {
method: "DELETE",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin' : '*' ,
'Access-Control-Allow-Headers' : 'Origin, X-Requested-With, Content-Type, Accept',
'Access-Control-Allow-Methods' : 'DELETE',
'mode' : 'cors'
},
})
.then(function(resp){
})
我尝试了设置模式:no-cors也。
我的网络API代码:
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class EmployeeController : ApiController
{
[HttpDelete]
public IHttpActionResult DeleteEmployee(int id)
{
using (var ctx = new Employee())
{
var existingemp = ctx.tempemp.Where(s => s.Id == id).FirstOrDefault();
ctx.Entry(existingemp).State = System.Data.Entity.EntityState.Deleted;
ctx.SaveChanges();
}
return Ok();
}
}
我在WebApiConfig.cs中也设置了CORS
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
提前致谢。
答案 0 :(得分:1)
通过
设置适当的访问控制标题绝对需要 http://localhost:25424/api/Employee/DeleteEmployee/
,允许http://localhost:7777
进行允许删除
edit and resend
(假设是firefox)Origin:http://localhost
并重新发送请求发布回复标题。
此外,
delete
不同的方法进行故障排除 注意请确保您要求的内容不会为您提供404
当您查看响应标题时,如果您没有看到Access-control-allow-origin
允许localhost:7777,或者,
Access-control-allow-methods
允许删除,您的请求绑定失败。
在这种情况下,您可能尚未正确配置端口25424上的API,以发送这些响应
答案 1 :(得分:-1)
我在2小时后自己解决了问题。 问题是我忘记在我的请求中加上'id?='。
fetch('http://localhost:25424/api/Employee/DeleteEmployee/' +1,
而不是这个。我在下面用来解决这个问题。
fetch('http://localhost:25424/api/Employee/DeleteEmployee?id=' +1,