【问题标题】:Receive a response from Webservice and interpret it in AngularJS接收来自 Webservice 的响应并在 AngularJS 中解释它
【发布时间】:2014-09-16 13:52:08
【问题描述】:

你好吗?

我有一个简单的问题。我的 web 服务 (asmx) 中有以下 msg 返回:

msg = "~/Paginas/Home.aspx";
row.Add("Retorno", msg);
rows.Add(row);
Context.Response.Output.Write(serializer.Serialize(rows));
return;

我正在使用它来验证 AngularJS + HTML5 中的登录页面。 我的问题是,如何在 HTML 端获取此消息并对其进行解释以进行重定向?

提前致谢!

【问题讨论】:

  • Web 服务是否公开任何 RESTful 路由,以便您可以使用 Angular 的 $http 服务执行 POST? (编辑:猜测它不一定是 RESTful,任何 POSTable 路由都可以)

标签: .net html angularjs web-services asmx


【解决方案1】:

如果你通过网络发送一个 json 对象会更好,比如:

在服务器端:

var returnInfo = new { Message = '/paginas/home.aspx' };
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(returnInfo);

在客户端:

angular.module('myApp').controller('myCtrl', ['$scope', '$resource','$window'
        function($scope, $resource, $window) {
            var myEndPoint = $resource('/myEndpoint/Url');
            myEndPoint.$get(function(data){
                if(data.message){
                    $window.location.href = data.message ; // if you plan to do a full page refresh
                }
            );

        }
    ]);

这就是大致的思路,希望对您有所帮助!

干杯!

【讨论】:

  • 我的表单中已经有一个名为 FormCTRL 的控制器,我可以在 Angular 中将两个控制器设置为同一个表单吗?我该怎么做?
  • @LucasLira 没有使用你拥有的那个,我只是想让你了解你可以采取的一种可能的方法,简而言之,这个概念是将匿名对象序列化为 JSON,如果您收到消息,则将消息传递给您的客户端,使用 $window 对象进行重定向
  • 如果你想发布你的控制器
猜你喜欢
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多