Привет Я разрабатываю веб-проект api2. Я размещал приложение на сервере 192.168.0.213, и я пытаюсь получить доступ к методам, как показано ниже.Cors не работает в веб-проекте api2
this.getSubs = function() {
var url = 'http://192.168.0.213:7777/api/User_Creation/';
return $http.get(url).then(function (response) {
return response.data;
});
}
Выше функции возвращают данные без проблем. Например, мои методы ниже с глаголами, такими как PUT, DELETE и POST, не работают.
this.saveSubscriber = function (sub) {
return $http({
method: 'post',
data: JSON.stringify(sub),
url: 'http://192.168.0.213:7777/api/User_Creation/',
contentType: "application/json"
});
}
Я пробовал много способов, пока не работал ни один метод. В настоящее время у меня есть код ниже в файле web.config.
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="POST,GET,PUT,DELETE" />
</customHeaders>
Также у меня есть строка под кодом в файле webapiconfig.cs.
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
}
Также у меня есть строка кода в контроллере. Все еще ничего не работает.
[EnableCors(origins: "http://192.168.0.213:7777", headers: "*", methods: "*")]
Также я прокомментировал. Я пробовал все способы только GET глагол работает нормально. Мои операции удаления обновления вставки не работают. Могу я узнать, где я делаю что-то неправильно? Могу я получить некоторую помощь на этом, поскольку я старался изо всех сил, пока не везет. Спасибо всем.
Это, вероятно, делает предполетный запрос. См. Https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api и http://www.asp.net/web-api/overview/ security/enable-cross-origin-requests-in-web-api # enable-cors У меня такая же проблема с MVC, я не уверен, в чем проблема. –
Спасибо. Я становлюсь ниже ошибки. MLHttpRequest не может загрузить http://192.168.0.54:8099/api/User_Creation/41. Ответ на предполетный период имеет недопустимый код статуса HTTP 405 –
Итак, я считаю, что есть глагол OPTION, который отправляется. Один из возможных способов заключается в том, чтобы не отправлять 'application/json' в качестве вашего типа, как http://stackoverflow.com/a/22968724/2953322 –