Angular POST请求不起作用

21 浏览
0 Comments

Angular POST请求不起作用

我使用passport.js建立了一个注册和登录系统,并在前端使用Angular.js。但是当我使用Angular时,它无法注册我的用户。没有使用Angular时,它运行良好。请参考下面的代码:\n没有使用Angular的代码(可以运行):\n

\n使用Angular的代码(无法运行):\n




Node Authentication














        

Signup

<% if (message.length> 0) { %> <%=m essage %> <% } %>

已经有账号了?登录 或者去主页

\nAngular控制器代码:\n

var login = angular.module('login', [])
login.controller('loginCtrl', function($scope,$http){
$scope.user = {};
$scope.signup = function(){
   return $http.post('/signup',$scope.user)
   .then(function(data) {
   console.log("da" + data);
 });
 };
})

\n注册路由:\n // 处理注册表单\napp.post(\'/signup\', passport.authenticate(\'local-signup\', {\n successRedirect : \'/profile\', // 成功后重定向到安全的个人资料页面\n failureRedirect : \'/signup\', // 如果出错,重定向回注册页面\n failureFlash : true // 允许闪现消息\n}));\n\n注意:\n在后端,我已经设置了一个Node/Express.js API。在成功注册后,它使用passport.js将用户添加到MongoDB,并将用户重定向到个人资料页面。\n但是目前数据已经进入数据库(我可以在数据库中看到新用户),但它没有将用户重定向到个人资料页面,也没有显示我发送的任何错误消息(例如,如果用户已经存在)。

0
0 Comments

Angular POST请求不起作用的原因可能是由于Angular应用程序负责重定向,您应该在登录过程后使用$location.path("/profile")来重定向用户。

解决方法可能如下:

1. 确保在Angular应用程序中正确使用了$http服务来发送POST请求。

2. 检查POST请求的URL是否正确。确保URL指向正确的后端端点或API。

3. 检查POST请求的数据是否正确。确保您发送了正确的数据,并且数据的格式符合后端期望的格式。

4. 检查是否在发送POST请求之前正确地设置了请求头。有些后端服务器可能需要特定的请求头才能正常处理请求。

5. 确保后端服务器正确处理了POST请求。检查后端代码,确保它能够正确地接收和处理来自Angular应用程序的POST请求。

如果您仍然遇到问题,您可以尝试在浏览器的开发者工具中查看网络请求的响应,以了解更多有关问题的信息。您还可以在Angular应用程序中使用调试工具进行调试,以查找可能的错误或异常。

通过检查以上可能的原因和采取适当的解决方法,您应该能够解决Angular POST请求不起作用的问题。

0
0 Comments

Angular POST请求不起作用的原因可能是没有正确配置路由提供者($routeProvider)或状态提供者($stateProvider)。可以通过在.config中使用$routeProvider或$stateProvider来定义路由配置。以下链接可能会有所帮助。

- [使用$routeProvider进行路由配置](https://stackoverflow.com/questions/13832529)

- [使用$stateProvider进行路由配置](https://stackoverflow.com/questions/30370716)

解决方法是正确配置路由提供者或状态提供者,确保在.config中定义了正确的路由配置。

0
0 Comments

问题的原因是:当使用Angular的$http.post方法发送POST请求时,无法通过返回的响应来实现页面重定向。这是因为Angular的$http.post方法只会在响应方面进行重定向,而不会直接重定向浏览器。如果直接从浏览器中发送POST请求到指定URL,将会实现重定向,但通过AJAX调用进行的HTTP路由不会直接影响浏览器。

解决方法是:在成功接收到来自API的响应后,告诉Angular路由器进行页面重定向。如果没有使用Angular路由器,可以使用window.location来实现重定向。

以下是一个示例代码:

return $http.post('/signup', $scope.user)
    .then(function(data) {
        console.log("da" + data);
        window.location.href = '/profile';
    });

需要注意的是,根据提供的上下文,无法确定您是否使用Angular路由器或其他机制来进行路由。如果没有使用Angular路由器,可以使用上述代码来实现重定向。

0