可以通过 $http 调用 WCF 服务,但不能通过 ngResource 调用

本文关键字:调用 但不能 ngResource 服务 http WCF 可以通过 | 更新日期: 2023-09-27 18:31:16

目前,我正在学习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切换到"资源",因此无法再访问 WCF 服务。

可以通过 $http 调用 WCF 服务,但不能通过 ngResource 调用

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

研究使用ApiController

相关文章: