当前位置: 首页 > 面试题库 >

Angular.js中的$ http帖子

闾丘照
2023-03-14
问题内容

我刚刚开始学习Angular.js。如何在Angular.js中重新编写以下代码?

var postData = "<RequestInfo> "
            + "<Event>GetPersons</Event> "         
        + "</RequestInfo>";

    var req = new XMLHttpRequest();

    req.onreadystatechange = function () {
        if (req.readyState == 4 || req.readyState == "complete") {
            if (req.status == 200) {
                console.log(req.responseText);
            }
        }
    };

    try {
        req.open('POST', 'http://samedomain.com/GetPersons', false);
        req.send(postData);
    }
    catch (e) {
        console.log(e);
    }

到目前为止,这是我的-

function TestController($scope) {
      $scope.persons = $http({
            url: 'http://samedomain.com/GetPersons',
            method: "POST",
            data: postData,
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).success(function (data, status, headers, config) {
                $scope.data = data; // how do pass this to $scope.persons?
            }).error(function (data, status, headers, config) {
                $scope.status = status;
            });

}

html

<div ng-controller="TestController">    
    <li ng-repeat="person in persons">{{person.name}}</li>
</div>

我的方向正确吗?


问题答案:

在当前函数中,如果要分配$scope.persons$http一个promise对象,则$http返回一个promise对象。

因此,除了分配scope.persons给$ http之外,您还应该$scope.persons在成功的内部分配,$http如下所述:

function TestController($scope, $http) {
      $http({
            url: 'http://samedomain.com/GetPersons',
            method: "POST",
            data: postData,
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).success(function (data, status, headers, config) {
                $scope.persons = data; // assign  $scope.persons here as promise is resolved here 
            }).error(function (data, status, headers, config) {
                $scope.status = status;
            });

}


 类似资料:
  • 问题内容: 我是新手,我想使用Angular.js发出HTTP POST请求。我正在访问PHP脚本,这些脚本的参数只是POST变量。每个脚本返回的是一个JSON字符串。通常,以HTML格式可以发出这样的请求: 根据您的输入以及单击提交后,JSON data1将返回如下内容: 我无权访问脚本或托管它们的服务器。 我想知道Angular.js是否有可能读取JSON数据1,将该数据1与在JSON数据2中

  • 问题内容: 我正在尝试使用s拦截器为我的网站编写一个通用错误处理程序,但它们似乎无法执行我想做的事情。 我放置了拦截器,但是当服务器处于脱机状态/未响应时,它们从未被调用(net :: ERR_CONNECTION_REFUSED)。我了解为什么会发生这种情况,因此没有响应可拦截。 我想知道是否有捕获这些错误的一个通用的方法,比听其他的回调为每个请求。 问题答案: 您可能可以检查ResponseE

  • 问题内容: 我已经在发送HTTP帖子的Objective-C中发送了方法,并且在正文中放置了一个字符串: 现在在Android中,我想做同样的事情,我正在寻找一种设置http帖子正文的方法。 问题答案: 您可以使用此代码段-

  • 看了几个论坛,好像找不到这个问题。 我有一个身份验证服务,应该使用令牌进行响应。 这是我的身份验证服务呼叫。 在我的登录组件中,我有以下调用: 我在控制台收到以下错误- TypeError: 无法读取 HttpXsrfInterceptor.push 上未定义的属性 'toLowerCase'。/node_modules/@angular/common/fesm5/http.js.HttpXsrf

  • 我试图在我的应用程序中获取一些数据,并通过使用带有截击的HTTP POST请求向用户显示。我的问题是,我不知道如何获得服务器主体对请求的响应。在下面的代码中,响应总是“200”,这是HTTP状态代码。 如何提取身体反应并作为字符串进行管理?

  • 问题内容: 我想使用Angular.js在单页Web应用程序上实现身份验证。在官方文档角建议使用拦截器: 问题是当服务器发送401错误时,浏览器立即停止显示“未经授权”消息或登录弹出窗口(服务器发送身份验证HTTP标头时),但是Angular无法使用其拦截器捕获HTTP根据建议处理错误。我误会了吗?我尝试了更多在Web上找到的示例(例如this,this和this),但是没有一个起作用。 问题答案