关于html+jQuery ajax+php的传值问题?

写jQuery ajax+PHP,用ajax提交“.html”的表单到“.php”,但是,传值一直出问题,提交表单总是报错:“SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data”。希望有大佬路过能救救萌新。下面是代码:

首先是html:

<form method="post">
            <table border="0">
                <tr>
                    <td>姓名:</td>
                </tr>
                <tr>
                    <td><input type="text" name="LoginName" maxlength="7" /></td>
                </tr>

                <tr>
                    <td>密码:</td>
                </tr>
                <tr>
                    <td><input type="text" name="LoginPassword" maxlength="15"/></td>
                </tr>
            </table>
            <button id="LoginSubmit">Start</button>
        </form>

接着是js:

$('#LoginSubmit').click(function () {
        var LoginInput = $('#Login input');
        var data = {"LoginName":LoginInput.eq(0).val(), "LoginPassword":LoginInput.eq(1).val()};
        $.ajax({
            type:"post",
            url:"../php/Login.php",
            async:true,
            contentType:'application/json; charset=UTF-8',
            dataType:'json',
            data:JSON.stringify(data),
            success:function (respon) {
                alert(respon);
            },
            error: function() {
                alert("失败");
            }
        });
        window.location.href = "../php/Login.php";
        return false;
    });

最后是PHP:

<?php
    header('Content-type: application/json');
    $name = $_POST['LoginName'];
    $password = $_POST['LoginPassword'];

    if($name == "user"){
        echo "1";
    }else{
        echo "0";
    }
?>

我用的是三个文件,“.html”、“.js”“.php”,看了很多解决方法不是涉及后端,就是没有用“.html”来做页面。也试过了很多方法,弄了三天还是没有解决。。。。。。还有萌新学生初来乍到,真的没有悬赏币,但是还是恳求有大佬来解答。

yixinxiangchen
yixinxiangchen 回复不想加班ing: 嗯,这个试过了,还是不行,我开始怀疑是不是源文件的问题。。。
9 个月之前 回复
qq_40018938
代码等待被码 data:JSON.stringify(data),这个是把要穿的参数序列化了,可以这样写data :{"LoginName":LoginInput.eq(0).val(), "LoginPassword":LoginInput.eq(1).val()}
9 个月之前 回复
bairuijin
白瑞金 删了????
9 个月之前 回复

1个回答

if($name == "user"){
echo "1";
}else{
echo "0";
} 这块需要 echo json字符串 例如json_encode([]);

yixinxiangchen
yixinxiangchen 还有就是我用XMLHttpRequest()传成功了。send是这样写的“xhr.send("name="+name+"&password="+password);”,我想会不会是我这可能只能传“=”形式,不能传“:”形式。
9 个月之前 回复
yixinxiangchen
yixinxiangchen 嗯,我试过了,但是还是同样的报错,我用的是jquery-3.3.1.min.js,我开始在想会不会是这个的问题,我有查到说源文件可能会出问题。
9 个月之前 回复
bairuijin
白瑞金 回复yixinxiangchen: 你直接 echo json_encode($_POST);
9 个月之前 回复
bairuijin
白瑞金 回复yixinxiangchen: json_encode 是把数组转成json 你用的是decode把json转成对象 这个报错是你php需要返回json字符串
9 个月之前 回复
yixinxiangchen
yixinxiangchen 然后,删了是什么意思,我刚来,什么都不懂QAQ
9 个月之前 回复
yixinxiangchen
yixinxiangchen 嗯,试过了,还是不行,我改成:<?php header("Content-type:text/html;charset=utf-8"); $json = $_POST["data"]; $res = json_decode($json); echo $res->name; echo $res->password; ?>
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问