Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可以通过$http调用WCF服务,但不能通过ngResource调用_C#_.net_Wcf_Angularjs - Fatal编程技术网

C# 可以通过$http调用WCF服务,但不能通过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

目前,我正在学习AngularJS。但我现在已经在这个问题上浪费了几个小时

我尝试通过ngResource从AngularJS调用WCF服务。我能够使用$http使它工作,但不能通过ngResource

服务非常简单:

[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;
});