$ HTTP.Get已取消

时间:2014-06-12 13:05:17

标签: javascript angularjs web-services rest

我对Angular很新,我试着制作一个简单的“Hello World" webservice调用我已验证的简单Rest Web服务返回" Hello World"当你点击它。

我在方法中有3个警报。我看到" In方法"提醒,然后看不到任何其他提醒。我附上了小提琴手,从未提出过网络服务请求。我必须在这里忽略一些基本的东西,我会想到......关于我可能缺少什么的想法?

Fiddler显示网络服务调用成功,我可以看到我期望的Web服务的结果,但使用Chrome的开发人员工具向我显示,Angular内部的某些内容正在取消对该服务的调用。

提前感谢您提供的任何帮助。

            (function () {

var app = angular.module("loginApp", ['ngResource'])
    .config(function ($httpProvider) {
        // Enable CORS
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    });

app.controller('LoginController', function ($scope, $http) {
    this.loginImage = "images/ActiveView_ContentMgm_140x40.png";

    this.loginUser = function () {
        var token = "";
        var loginUrl = "http://ten1.com/services/rest/demoservice.svc/Login";

        delete $http.defaults.headers.common['X-Requested-With'];
        var result = $http({ method: 'GET', url: loginUrl, params: { userName: this.userName, passWord: this.passWord } })
        .success(function (data, status) {
            $scope.status = status;
            $scope.data = data;
        })
        .error(function (data, status) {
            $scope.data = data || "Request failed";
            $scope.status = status;
        });

        token = data.Token;
    };

});

})(); 更新:

现在,我点击登录表单上的提交按钮,然后尝试返回一个字符串,以便验证与Web服务的基本通信。我的目标是传递用户名/密码并获取令牌。这是以下形式:

                    <form ng-submit="loginCtrl.loginUser()" novalidate>
                        <div class="form-group">
                            <label for="exampleInputEmail1">Username</label>
                            <input type="text" class="form-control" style="border-radius:0px" ng-model="loginCtrl.loginForm.userName" placeholder="Enter username">
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1">Password </label>
                            <input type="password" class="form-control" style="border-radius:0px" ng-model="loginCtrl.loginForm.passWord" placeholder="Password">
                        </div>
                        <button type="submit" class="btn btn-sm btn-default">Log in</button>

2 个答案:

答案 0 :(得分:2)

将$ scope和$ http注入您的控制器,而不是loginUser()函数:

 app.controller('LoginController', function ($scope, $http) {

答案 1 :(得分:0)

我发现我正在接受的服务是返回&#34; No&#39; Access-Control-Allow-Origin&#39; &#34;消息将允许服务完成但会导致Angular短路。我通过添加&#34; Access-Control-Allow-Origin&#34;来解决这个问题。到服务中的Response标头。

链接:

Cross Origin Resource Sharing for c# WCF Restful web service hosted as Windows service

"Access-Control-Allow-Origin:*" has no influence in REST Web Service