c# - 可以通过 $http 但不能通过 ngResource 调用 WCF 服务

标签 c# .net wcf angularjs

目前,我正在学习 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;
    }

按照一些示例,我尝试调用 WCF 服务但没有成功,这是 AngularJs 代码:

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

由于我从 $http 切换到“resource”,所以无法再访问 WCF 服务。

最佳答案

我猜你的问题是 $resource 的使用需要一个 rest api 后端。您的 Web 服务需要一个 POST 请求,而您正在发送一个带有查询方法的 GET 请求。

研究使用 ApiController

关于c# - 可以通过 $http 但不能通过 ngResource 调用 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18808500/

相关文章:

.net - Azure 服务总线队列 ScheduledEnqueueTimeUtc 延迟

.net - WPF UI控件是否有标准的命名约定?

c# - 未在自定义凭据上设置 WCF 证书

具有相同方法的 C# 子类

c# - 如何在 C# 控制台应用程序中解锁 Eyeshot

c# - SendKey.Send() 不工作

c# - 在 aspx 页面中加载一个又一个控件

.net - 您将如何在 .NET 中实现这个 "WorkerChain"功能?

wcf - 标记为不可导出的证书

wcf - ColdFusion cfinvoke(消息安全 - ClientCredentials = 用户名)