前端向php发送请求出现405错误

错误信息:

img

POST...405(Method not found)

HTML代码:通过两个文本框保存数据,并由submit按钮提交给后端

        <div class="logtext">
            <input type="text" placeholder="Username" class="username" name="username">
        </div>

        <div class="logtext">
            <input type="password" placeholder="Password" class="password" name="password">
        </div>

        <input type="submit" class="login-button" value="Login">

Javascript代码:在$.ajax处出现一系列错误,并且如果url中将路径变为相对路径或者与php文件打开后的网页中的链接不符合,就会出现如下错误:

Access to XMLHttpRequest at 'http://localhost/sql_Experiment3/php/login.php' 
from origin 'http://127.0.0.1:5000' has been blocked 
by CORS policy: No 'Access-Control-Allow-Origin' 
header is present on the requested resource.

<script>
        //登录按钮点击事件
        //点击时发送Ajax请求送往后台,并等待后台反馈的登录结果
        $(".login-button").click(function () {
            var userName = $(".username").val();
            var passWord = $(".password").val();

            //判空
            if (userName.length == 0 || passWord.length == 0) {
                alert("Please enter Your username or password!");
                return;
            }

            $.ajax({ 
                type: 'POST',
                url: 'http://127.0.0.1:5500/sql_Experiment3/php/login.php',
                dataType: 'json',
                data: {
                    name: userName,
                    pswd: passWord
                },
                success: function (res) {
                    console.log(res);
                }
            });
        });
    </script>

跨域请求了,加上Access-Control-Allow-Origin这个Header

跨域请求了 url: 'http://127.0.0.1:5500/sql_Experiment3/php/login.php'被浏览器拦截,Post 405 method not allowed无法通过POst访问服务器
解决方法
1换火狐浏览器看看
2.把post请求改成get看看
3.测试一下是不是接口里面json数据本来的原因,使用postman,或者Apipost
4.https://blog.csdn.net/inrtyx/article/details/10132067