Fetch Api - Delete - Ответ на предварительный запрос не проходит проверку контроля доступа
Я получил много решений, никто не помог мне. Я следовал всем решениям, установил все необходимые заголовки. все еще показывает ошибку ниже.
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){
})
Я попробовал установить режим: нет-корс тоже.
Код моего веб-интерфейса:
[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();
}
}
Я также установил CORS в WebApiConfig.cs
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
Заранее спасибо.
2 ответа
Соответствующие заголовки контроля доступа Абсолютно необходимо установить через
http://localhost:25424/api/Employee/DeleteEmployee/
, включить http://localhost:7777
сделать разрешенное удаление
- Проверьте сетевую панель браузера, выполнив обычный запрос
- Откройте запрос сети - Do
edit and resend
(при условии, что Firefox) - Добавить заголовок запроса
Origin:http://localhost
и повторно отправить запрос
Разместите заголовки ответа.
В дальнейшем,
- Выберите другого пользователя для удаления при повторной отправке запросов, или это может быть другой метод, чем
delete
для устранения неполадок перед решением
Примечание Убедитесь, что вы запрашиваете что-то, что не дает вам 404
Когда вы смотрите на заголовки ответа, если вы не видите Access-control-allow-origin
разрешить localhost:7777, или,
Access-control-allow-methods
Если разрешить удаление, ваш запрос обязательно завершится неудачей.
В этом случае, возможно, вы еще не настроили свой API на порту 25424 правильно, чтобы отправить эти ответы
Я получил решение сам через 2 часа. Проблема в том, что я забыл указать id?= В моем запросе.
fetch('http://localhost:25424/api/Employee/DeleteEmployee/' +1,
Вместо этого. Я использовал ниже, чтобы решить эту проблему.
fetch('http://localhost:25424/api/Employee/DeleteEmployee?id=' +1,