2016-09-14 2 views
2

Очень странная ошибка, которую я испытываю.CORS Проблема в том же контроллере, один метод в порядке, другой нет

У меня есть два метода в контроллере, которые вызывается угловым js http get event.

Первый работает отлично, второй бросает ошибку CORS, не уверен, как это возможно, поскольку оба они находятся в одном контроллере.

Это ошибка, я получаю: enter image description here

Эти вызовы, которые я делаю в angularjs:

$http({ 
     url: 'http://localhost:52876/api/Admin/GetLoanInfo', 
     method: "GET", 
     params: { loanID: querystringParam } 
    }).success(function (data, status) { 
     console.log(data); 
     $scope.LoanDetailsVM.LoanStatus = data.LoanStatus; 
    }).error(function (data, status) { 
     console.log(data); 
    }); 

    $http({ 
     url: 'http://localhost:52876/api/Admin/GetLoanCovenants', 
     method: "GET", 
     params: { loanID: querystringParam } 
    }).success(function (data, status) { 
     console.log(data); 
    }).error(function (data, status) { 
     console.log(data); 
    }); 

И методы контроллера:

[HttpGet] 
[Route("api/Admin/GetLoanInfo")] 
public async Task<IHttpActionResult> GetLoanInfo(int loanID) 
{ 

     LoanApplication newApplication = null; 
     newApplication = db.LoanApplications.FirstOrDefault(s => s.LoanId == loanID); 
     return Ok(newApplication); 
} 


[HttpGet] 
[Route("api/Admin/GetLoanCovenants")] 
public async Task<IHttpActionResult> GetLoanCovenants(int loanID) 
{ 
     LoanCovenant newCovenant = null; 
     newCovenant = db.LoanCovenants.FirstOrDefault(s => s.LoanID == loanID); 
     return Ok(newCovenant); 
} 

Я m, способный поразить оба метода, у меня есть точки останова в обоих методах, но не уверен, почему жалуется на CORS на первом.

enter image description here

+1

Это работает, когда вы открываете URL-адрес непосредственно в браузере? – charlietfl

+0

У вас есть полный необработанный HTTP-запрос и ответ? Является ли CORS разрешенным в вашем back-end каким-то образом? Удалили ли вы кеш браузера? – Oscar

+0

У меня возникла проблема с запросом, не зная, почему он жалуется на CORS. @charlietfi спасибо за подсказку, которая помогла мне проверить URL-адрес в браузере – Laziale

ответ

1

Вызывающие методы, использующие CORS с помощью веб-браузера делает Web API называют первым с OPTIONS запроса (например, at the end of this article).

Таким образом, браузер знает, если он может вызвать запрошенный API.

В вашем случае вызов вашей конечной точки, кажется, сбой, что означает, что ошибка HTTP 500 не содержит заголовков CORS.

Это объясняет, почему веб-браузер, ущемляющий HTTP-заголовок CORS, отсутствует: Reason: CORS Header 'Access-Control-Allow-Origin' missing.

Если вы исправите свой метод, то HTTP OPTIONS должно быть в порядке, и эррос CORS исчезнет.

Смежные вопросы