Ошибка междоменного вызова: XMLHttpRequest: ошибка сети 0x80070005, доступ запрещен

1

Использование MVC Asp.Net

Ниже код работает с фактическим именем пользователя и паролем. Но я не хочу его использовать. :

WebClient client1 = new WebClient();
client1.Credentials = new NetworkCredential("actualUserName", "actualPassword");
string code1 = client1.DownloadString(@"http://Domainname/GetValue");

Пробовал javascript подход:

 $.ajax({
    type: 'POST',
    url: Url,
    processData: false,
    contentType: 'application/json; charset=utf-8',
    dataType: 'jsonp',
    crossDomain: true,
    jsonpCallback: 'CallBackMethod',
    success: function (json) {
        console.log(json); 
    },
    error: function (xhr, textStatus, errorThrown) {
        console.log(errorThrown);
    }
});

Но получив следующую ошибку:

Multiple Access-Control-Allow-Origin headers are not allowed for CORS response.
XMLHttpRequest: Network Error 0x80070005, Access is denied.

Пытался добавить заголовок в Global.asax в Application_BeginRequest и аналогичные записи в webconfig:

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
    HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
    HttpContext.Current.Response.End();
}

Все вышеперечисленное было опробовано, и оно не работает с машиной Win7. Но работает с машины Win10 !! Также попытался развернуть на сервере и проверить, но появляются такие же ошибки.

Теги:
asp.net-mvc
xmlhttprequest
cors
networkcredentials

2 ответа

0

Ключ к вашей проблеме прав в сообщении об ошибке:

Заголовки заголовков с несколькими правами доступа-Разрешения-заголовки недопустимы

Сервер отвечает дублирующими заголовками. Это приводит к сбою некоторых браузеров. Вы упомянули, что вы реализовали CORS в двух местах. Это хорошее место для начала. Удалите одну реализацию и посмотрите, что произойдет.

Существуют рамки, которые также внедряют CORS. Суть в том, что вам нужен только один, и тот, который работает лучше всего. Независимо от того, какую реализацию вы выполняете, она также должна обрабатывать стандартные запросы и предполетные запросы (ОПЦИИ).

0

Ниже исправлена проблема:

IIS → Аутентификация → Аутентификация Windows → Поставщики → Удалить переговоры

Ещё вопросы

Сообщество Overcoder
Наверх
Меню