关于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”来做页面。也试过了很多方法,弄了三天还是没有解决。。。。。。还有萌新学生初来乍到,真的没有悬赏币,但是还是恳求有大佬来解答。

3个回答

把JSON.stringify()去掉就可以了,不知道你为什么要把构建的json转成字符串

$('#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:data,
success:function (respon) {
alert(respon);
},
error: function() {
alert("失败");
}
});
window.location.href = "../php/Login.php";
return false;
});

yixinxiangchen
yixinxiangchen 不行,还是一样的报错,用F12调试器,有一段被高亮:input.json = JSON.parse(jsonString);
9 个月之前 回复
yixinxiangchen
yixinxiangchen 不行,还是一样的报错,用F12调试器,有一段被高亮:try { input.json = JSON.parse(jsonString); } catch (err) { input.json = err; }
9 个月之前 回复
加id   <table border="0"  id="Login">  浏览器F12 查看js错误原因 
qq_36442647
qq_36442647 回复yixinxiangchen: alert(LoginInput.eq(0).val()) 看看什么值,async:false
9 个月之前 回复
yixinxiangchen
yixinxiangchen 在json-viewer.js里报错:input.json = JSON.parse(jsonString);
9 个月之前 回复

需要 echo json字符串 例如json_encode([]);

bairuijin
白瑞金 回复yixinxiangchen: 回调在js的需要是json数据,你才能alert
9 个月之前 回复
yixinxiangchen
yixinxiangchen 不行,还是报相同的错误
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问