C# 可以通过$http调用WCF服务,但不能通过ngResource调用
目前,我正在学习AngularJS。但我现在已经在这个问题上浪费了几个小时 我尝试通过ngResource从AngularJS调用WCF服务。我能够使用$http使它工作,但不能通过ngResource 服务非常简单:C# 可以通过$http调用WCF服务,但不能通过ngResource调用,c#,.net,wcf,angularjs,C#,.net,Wcf,Angularjs,目前,我正在学习AngularJS。但我现在已经在这个问题上浪费了几个小时 我尝试通过ngResource从AngularJS调用WCF服务。我能够使用$http使它工作,但不能通过ngResource 服务非常简单: [ServiceContract] public interface IService1 { [OperationContract] [WebGet(UriTemplate = "flowers", ResponseFormat = WebMessageForma
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "flowers", ResponseFormat = WebMessageFormat.Json)]
List<BaseFlower> GetFlowers();
public class Service1 : IService1
{
public List<BaseFlower> GetFlowers()
{
var flowers = new List<BaseFlower>();
flowers.Add(new BaseFlower { Name = "Rose", Price = 1, BoughtOn = DateTime.Now });
flowers.Add(new BaseFlower { Name = "Lilly", Price = 2, BoughtOn = DateTime.Now });
flowers.Add(new BaseFlower { Name = "Heliconder", Price = 3, BoughtOn = DateTime.Now });
return flowers;
}
由于我从$http切换到了“resource”,WCF服务无法再访问。我猜您的问题是$resource usage需要一个rest api后端。您的web服务需要一个POST请求,而您正在使用查询方法发送一个GET请求
研究如何使用
ApiController
class,我认为情况并非如此,因为如果您看到的方法具有WebGet
属性集,则会声明该方法。对资源的调用是异步的。调用没有发生(请参见浏览器工具中的)还是$scope.items没有被填充?仅选中,我得到“加载资源失败”。是否可以更详细地了解原因?无论如何,我想我会选择一个自托管WebApicController,希望它能解决问题。如果这是一个服务器错误,请尝试使用$http和$resource发出请求,并查看请求负载的差异。
var ngFlower = angular.module("ngFlower", ['ngResource']);
ngFlower.factory("Flower", function ($resource) {
return {
flowerData: $resource('http://localhost:61585/Service1.svc/flowers')
}
});
ngFlower.controller("flowerCtrl", function ($scope, Flower) {
$scope.items = Flower.flowerData.query({});
DB = $scope.items;
});