简单的登录页面 - 表单方法帖子不起作用

时间:2017-02-19 20:42:41

标签: javascript php angularjs

您好我有简单的登录页面,当我使用bootstrap但我想使用角度材料设计时工作正常。

我在3-4小时内找不到问题。我认为该表格不会发送任何数据,如用户名,密码和提交

有完整的登录代码


this block acts as a new paragraph, above there is a blank line

2 个答案:

答案 0 :(得分:1)

在AngularJS中,表单需要ng-submit指令。

<form method="post" name="loginForm" ng-submit="submit()">

由于客户端AngularJS应用程序中表单的角色与传统的往返应用程序不同,因此浏览器最好不要将表单提交转换为将数据发送到服务器的整页重新加载。相反,应该触发一些javascript逻辑来以特定于应用程序的方式处理表单提交。

出于这个原因, AngularJS会阻止默认操作(表单提交到服务器),除非该元素指定了action属性。

您可以使用以下两种方法之一来指定在提交表单时应调用的javascript方法:

    表单元素上的
  • ngSubmit指令 对于提交类型的第一个按钮或输入字段的
  • ngClick指令(输入[type = submit])

有关详细信息,请参阅:

  

我做错了这是$ http帖子的代码。你能看一下吗?

使用AngularJS $ http服务,默认内容类型为application/json,数据对象自动编码为JSON字符串。

$scope.submit = function () {
    var httpPromise = $http({
        method: "POST",
        url: "login.php",
        data: {
            username: $scope.username,
            password: $scope.password
        }
    }).then(function(response) {
        console.log("POST SUCCESSFUL");
        return response;
    }).catch(function(response) {
        console.log("POST REJECTED");
        throw response;
    });

如果服务器API只能接受内容类型为application/x-www-form-urlencoded的POST,则数据必须为URLencoded

$scope.submit = function () {
    var httpPromise = $http({
        method: "POST",
        url: "login.php",
        data: {
            username: $scope.username,
            password: $scope.password
        },
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        //URLencode the request
        transformRequest: $httpParamSerializer
        //OR
        //transformRequest: $httpParamSerializerJQLike
    });
};

有关详细信息,请参阅

答案 1 :(得分:0)

你复制/粘贴了吗?

$username=$ _POST[ 'username']; $password=m d5($_POST[ 'password']);

$ _ POST也有空格和md5。 应该是:

$username=$_POST['username']; $password=md5($_POST['password']);