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

处理来自Angular POST的明确重定向

岳景明
2023-03-14
问题内容

我正在使用Expressjs作为API,并且正在使用angular来执行该POST。我想回应快递发送的重定向。Angular
POST的成功返回了我打算重定向到的页面的HTML,但是DOM没有任何反应。我可以看到我的重定向在网络流量中起作用,并且下面的console.log数据包含重定向页面的DOM。

如何刷新DOM,以反映此成功的POST,或处理“重定向”?

角码:

   $http({method: 'POST', url: '/login', data:FormData}).
      success(function(data, status, headers, config) {
      console.log(data)
    }).
      error(function(data, status, headers, config) {
    });

    $scope.userName = '';

Expressjs API:

    app.post('/login', function(req, res){

        var name = req.param('name', null);  // second parameter is default
    var password = req.param('password', "changeme")

    // Lots Authenticationcode
    // returns succesfful login
    res.redirect('http://localhost:3000/');

  }); // end app.post

console.log(data)(来自Angular POST成功)

returns the HTML of the page I intended to redirect to

问题答案:

AngularJS旨在作为客户端框架,与(主要是)RESTfull API结合使用。您的登录API不应返回HTML,而应返回 重定向指令
。所以你的情况,你应该简单地调用$location.url('/')你的$http成功回调,这将使用角度路由器“重定向”,以“/”(根URL)。



 类似资料:
  • 我有一些大致看起来像这样的代码: 是一个冷可观察的,它在标准的同时循环中产生(但是在另一个线程上!)。在未配置时,获取一些数据并调用。 我面临的问题是太“慢”,它跟不上生成数据的速度。这是一个异步操作,本质上是将对内存中某个位置的客户机的调用排队(无法访问此代码),并最终填充堆。 我需要找到一种方法,当这些调用开始堆积时,让停止生成。有没有一种方法可以使用内置操作符来实现这一点?

  • 这是凯文帮助后的代码。

  • 有时一些业务逻辑的发生你每次都想重试它。最经典的例子就是远程调用,为了这个目的Spring Batch提供了一个Aop拦截器用来封装一个方法调用RetryOperations 。RetryOperationsInterceptor依据RetryPolicy 提供的RepeatTemplate 执行拦截方法和重试失败。 下面是一个示例使用Spring AOP命名空间的声明式迭代重复一个服务调用的一个

  • 问题内容: 我有一个库,其中为我们的客户提供了两种方法,sync和async。他们可以调用他们认为适合其目的的任何方法。 executeSynchronous()-等待直到得到结果,然后返回结果。 executeAsynchronous()-立即返回一个Future,如果需要,可以在完成其他操作之后进行处理。 他们将传递其中包含用户ID的DataKey对象。然后,我们将根据用户ID确定要调用的计算

  • 问题内容: 我正在将一些数据发布到正在回答302移动临时的服务器上。 我希望HttpClient遵循重定向并自动获取新位置,因为我相信这是HttpClient的默认行为。但是,我得到一个例外,而不是按照重定向:( 这是相关的代码,任何想法都将不胜感激: 问题答案: HttpClient的默认行为符合HTTP规范(RFC 2616)的要求 您可以通过子类化DefaultRedirectStrateg

  • 11.7. 处理重定向 你可以使用两种不同的自定义 URL 头信息来处理永久重定向和临时重定向。 首先, 让我们来看看重定向处理的必要性。 例 11.10. 没有重定向处理的情况下,访问 web 服务 >>> import urllib2, httplib >>> httplib.HTTPConnection.debuglevel = 1 >>> request = url