Angularjs - 无法从同一解决方案的另一个项目调用web api服务 - VS2015

时间:2016-10-21 20:09:03

标签: angularjs web-services asp.net-web-api visual-studio-2015

这对你来说可能是一个简单的场景,但不适合你,我试图在网上搜索这个没有找到任何有用的东西。

今天我遇到了一个奇怪的情况。我写了一个web api服务,它返回一个JSON对象。我在相同的解决方案下,但在不同的项目下为AngularJS应用程序创建了另一个项目。 当我从角度应用程序调用$ http服务以从web api获取数据时,它无法正常工作。最初我只使用chrome和firefox。 但是当我在IE浏览器中打开角度应用程序时,它工作正常。这是非常奇怪的情况。

同时我在web api项目中编写了一个角度代码,即使我在chrome或firefox中打开了角度应用程序,角度代码也能够获取数据。

任何人都可以指导为什么如果项目不同,chrome或firefox无法获取详细信息。

Angular Code

sendRequest(URL, userId)       // This is jQuery deferred
.then( (data) => {
  // ...
  return gameScore.save()      // This is a promise
  .then( (changedGameObj) => { // success
    console.log(changedGameObj);
  }, (error) => {              // error
    console.warning(error);
  });                          // this whole promise is returned to the deferred.
})
.fail()                        // Back to jquery deferred.
.always()
.whatever()  

HTML:

 var app = angular.module("app", [])
            .controller("controller", function ($scope, $http, $log) {
                $http({
                        url: 'http://localhost:37103/api/employee',
                        method: 'GET',
                        headers: { 'Content-Type': 'application/json' }

                    })
                    .then(function success(response) {
                      //  $scope.employees = response.data;
                        $scope.data = response.data;
                    })
                    .then(function error(response) {
                        $scope.error = response;
                    })

            });

WebApi方法存在于同一解决方案下的单独项目中

 <body ng-controller="controller">
Data:{{data}} 
</br>
Error: {{error}}

 </body>

}

1 个答案:

答案 0 :(得分:0)

看起来问题出在asyn调用上,在下面的响应的帮助下,我能够解决我的问题。

 http://stackoverflow.com/a/40191484/1997983