2017-02-17 23 views
0

Я вызываю метод web api из контроллера angularjs следующим образом.Почему веб-api-вызов возвращает html-страницу после развертывания iis

$http.get('../api/Home/AppLogin').then(function (response) { 
    alert(response.data); 
, function (error) { 
    alert('Error: ' + error.message); 
}) 

Я использую angularJs маршрутизации следующим образом:

var cioTrack = angular.module('CIOTrack', ['ngRoute', 'ngSanitize']); 
//Define Routing for the application 
cioTrack.config(
function ($routeProvider, $locationProvider) { 
    $locationProvider.hashPrefix(''); 

    $routeProvider. 
     when('/', { 
      templateUrl: 'Index.html', 
      controller: 'IndexController' 
     }). 
     when('/Notify', { 
      templateUrl: 'Views/Notify.html', 
      controller: 'NotifyController' 
     }). 
     when('/Report', { 
      templateUrl: 'Views/Report.html', 
      controller: 'ReportController' 
     }) 

    $locationProvider.html5Mode(true); 
}); 

В конфигурации я следующие правила:

<rewrite> 
    <rules> 
    <rule name="rewriteRule" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/" /> 
    </rule> 
    </rules> 
</rewrite> 

Web-метод контроллера апи:

[Route("api/Home/AppLogin")] 
[HttpGet] 
public string AppLogin() 
    { 
     return "some string"; 
    } 

Это работаю нормально, когда я бегу от vi студия суала. но api call возвращает полный html после развертывания кода на веб-сервере (IIS).

выход функции успеха, если я бегу из Visual Studio: Я получаю предупреждение строку «некоторые строки»

выход функции успеха, если я бегу после развертывания на веб-сервере IIS, я получить полную страницу HTML в виде сообщения.

Версия IIS - 7,5 У меня установлен URL-адрес перезаписи на веб-сервере IIS.

Пожалуйста, расскажите мне, в чем проблема?

ответ

0

Я решил это, добавив еще одно условие в правило перезаписи. Разделите его для других.

<add input="{URL}" negate="true" pattern="/API/" /> 

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

  • Нет связанных вопросов^_^