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,
Другие вопросы по тегам