首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用端口8080时出现400错误,但页将打开。

使用端口8080时出现400错误,但页将打开。
EN

Stack Overflow用户
提问于 2022-04-19 20:04:41
回答 1查看 67关注 0票数 0

我正在运行wampserver,并通过vue、node、PHP、ajax创建一个登录系统。使用node.js命令npm,我使用: 8080 /寄存器在端口8080上运行该项目。当我尝试注册时,我会得到以下错误:

发布http://localhost:8080/login-system/backend/api/register.php 400 (不良请求)

我设置它的代码在jwtservice.js中:

代码语言:javascript
复制
login(...args) {
        return this.axiosIns.post("http://localhost:8080/login-system/backend/api/login.php", ...args);
    }

    register(...args) {
        return this.axiosIns.post("http://localhost:8080/login-system/backend/api/register.php", ...args);
    }

    forgotPassword(...args) {
        return this.axiosIns.post("http://localhost:8080/login-system/backend/api/password-reset-token.php", ...args);
    }

    resetPassword(...args) {
        return this.axiosIns.post("http://localhost:8080/login-system/backend/api/update-forgot-password.php", ...args);
    }

如果我把http://localhost:8080/login-system/backend/api/register.php放在我的URL中,它不会给我一个404,所以我认为它应该是正确的网址。

不确定这是否有帮助,但下面是目录树:

目录树

编辑:下面是register.php中的代码:

代码语言:javascript
复制
<?php
    // required headers
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    header("Access-Control-Allow-Methods: POST");
    header("Access-Control-Max-Age: 3600");
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

    // files needed to connect to database
    include_once 'config/vendor/autoload.php';
    include_once 'config/database.php';
    include_once 'objects/user.php';
    

    // generate json web token
    include_once 'config/core.php';
    include_once 'config/vendor/firebase/php-jwt/src/BeforeValidException.php';
    include_once 'config/vendor/firebase/php-jwt/src/ExpiredException.php';
    include_once 'config/vendor/firebase/php-jwt/src/SignatureInvalidException.php';
    include_once 'config/vendor/firebase/php-jwt/src/JWT.php';
    use \Firebase\JWT\JWT;

    // get database connection
    $database = new Database();
    $db = $database->connect();

    // instantiate user object
    $user = new User($db);

    // get posted data
    $postedData = preg_replace('/\s+/', '', file_get_contents("php://input"));
    $data = json_decode($postedData, true );

    // set user property values
    $user->username = $data['username'];
    $user->email = $data['email'];
    $user->fullName = $data['username'];
    $user->password = $data['password'];

    //set default errors
    $emailError = null;
    $usernameError = null;

    //create the user
    if(
        !empty($user->username) &&
        !empty($user->email) &&
        !empty($user->password) &&
        $user->create()
    ) {
        $token = array(
            "iat" => $issued_at,
            "exp" => $expiration_time,
            "iss" => $issuer,
            "data" => array(
                "id" => $user->id,
                "email" => $user->email,
            )
        );

        $accessToken = JWT::encode($token, $secret);
        $refreshToken = "";

        //set response code
        http_response_code(200);

        //display message: user was created
         echo json_encode(
            array(
                "message" => ["User was created."],
                "userData" => $user,
                "accessToken" => $accessToken, 
                "refreshToken" => $refreshToken
                )    
        );
    }

    //message if unable to create user
    else if ($user->error->errorInfo) {

        if(strpos($user->error->errorInfo[2], "email"))
            $emailError = "This email is already in use.";
        if(strpos($user->error->errorInfo[2], "username"))
            $usernameError = "This username is already in use.";

        //set response code
        http_response_code(400);
        //display message: unable to create user
        echo json_encode(array("error" => array(
                                        "email" => $emailError,
                                        "username" => $usernameError
                                    )
                                )  
                        );
    }

?>

对尝试什么有什么建议吗?我尝试过将URL更改为本地主机,但得到了相同的400,我不确定URL应该是什么。询问任何额外的上下文/信息,我将编辑并添加它

EN

回答 1

Stack Overflow用户

发布于 2022-04-20 02:21:06

您是否尝试过在与8080不同的端口上运行您的php服务或您的api。对于开发,我倾向于这样做,只是为了在服务器和客户端应用程序之间进行清晰和调试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71930713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档