@ user1843970 Действительно мое удовольствие

аюсь вызвать метод GET Web API из Angular JS 1.6.0 и получаю следующую ошибку: -

Возможно необработанное отклонение: {"data": null, "status": - 1, "config": {"method": "GET", "transformRequest": [null], "transformResponse": [null], "jsonpCallbackParam" : "Обратный вызов", "URL":»HTTP: // локальный: 51972 / API / видео"," headers ": {" Accept ":" application / json, text / plain,/"}}," Его статус ":" "}

Я получаю правильный ответ JSON, когда вызываю тот же метод GET из Fiddler 4 и возвращаю текст JSON.

Обратите внимание, что мой WEB API и код Angular JS находятся в разных каталогах.

Согласно комментарию Деза, я изменил WebApiConfig.cs, чтобы он возвращал ответ JSON из WebAPI.

WebApiConfig.cs

 public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
            config.Formatters.Remove(config.Formatters.XmlFormatter);
        }
    }

VideoController.cs

public class VideoController : ApiController
{
        [Route("api/video")]
        public List<VideoViewModel> GetVideo()
        {
            List<VideoViewModel> video = new List<VideoViewModel>();
            video.Add(new VideoViewModel { Name = "Hello World", Desc = "Hello World Desc" });
            video.Add(new VideoViewModel { Name = "Hello World1", Desc = "Hello World Desc1" });
            return video;
        }
} 

Когда я печатаюHTTP: // локальный: 51972 / API / видеои нажмите, затем я получаю правильный ответ (JSON), как показано ниже: -

 [{"Name":"Hello World","Desc":"Hello World Desc"},{"Name":"Hello World1","Desc":"Hello World Desc1"}]

home.html

<head>
    <title></title>
    <meta charset="utf-8" />
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js"></script>
    <script src="../Scripts/AngularControllers/AddVideoController.js"></script>
</head>
<body ng-app="modVid" ng-controller="ctrlVidAdd">
      <table class="table">
        <tr>
            <th>Name</th>
            <th>Desc</th>
       </tr> 
       <tr ng-repeat="a in selectedDisplay">
            <td>{{a.Name}}</td>
            <td>{{a.Desc}}</td>
        </tr>
    </table>
</body>

AddVideoController.js

var myApp = angular.module("modVid", []);
myApp.controller("ctrlVidAdd", function ($scope, $http) {
$http.get('http://localhost:51972/api/video').then(function (response) {
        alert("Hello");
        $scope.selectedDisplay = response.data;
    });
});

Когда я пытаюсь отладить вызов Get из WEB API из Angular JS, я вижу, что он вызывает метод Get из Web API, но ничего не возвращается из Web API. Как вы можете видеть, я поместил оповещение в ответ в конце $ http, который также не выполняется.

Любая помощь будет оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос