SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符

新手上路,请多包涵

我花了 6 个多小时在我的代码中查找异常或特殊字符,但我找不到。我在这里检查了所有类似的消息。

我正在发送带有华丽弹出窗口的表单。首先,我使用内联弹出窗口打开我的表单,而不是将所有输入发送到 main.js 进行验证。

所以,我只需要第三只眼。

我有: index.htmlregister.phpmain.js

这是代码

形式

JS/AJAX

PHP-register.php

这是错误消息

JSON 输出json

铬控制台:

铬合金

火狐控制台:火狐


我错过了什么?

原文由 levent kaya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 870
2 个回答

字符是 < 的事实让我认为您有 PHP 错误,您是否尝试过回显所有错误。

由于我没有你的数据库,我正在通过你的代码试图找到错误,到目前为止,我已经更新了你的 JS 文件

$("#register-form").submit(function (event) {

    var entrance = $(this).find('input[name="IsValid"]').val();
    var password = $(this).find('input[name="objPassword"]').val();
    var namesurname = $(this).find('input[name="objNameSurname"]').val();
    var email = $(this).find('input[name="objEmail"]').val();
    var gsm = $(this).find('input[name="objGsm"]').val();
    var adres = $(this).find('input[name="objAddress"]').val();
    var termsOk = $(this).find('input[name="objAcceptTerms"]').val();

    var formURL = $(this).attr("action");

    if (request) {
        request.abort(); // cancel if any process on pending
    }

    var postData = {
        "objAskGrant": entrance,
        "objPass": password,
        "objNameSurname": namesurname,
        "objEmail": email,
        "objGsm": parseInt(gsm),
        "objAdres": adres,
        "objTerms": termsOk
    };

    $.post(formURL,postData,function(data,status){
        console.log("Data: " + data + "\nStatus: " + status);
    });

    event.preventDefault();
});

PHP编辑:

  if (isset($_POST)) {

    $fValid = clear($_POST['objAskGrant']);
    $fTerms = clear($_POST['objTerms']);

    if ($fValid) {
        $fPass = clear($_POST['objPass']);
        $fNameSurname = clear($_POST['objNameSurname']);
        $fMail = clear($_POST['objEmail']);
        $fGsm = clear(int($_POST['objGsm']));
        $fAddress = clear($_POST['objAdres']);
        $UserIpAddress = "hidden";
        $UserCityLocation = "hidden";
        $UserCountry = "hidden";

        $DateTime = new DateTime();
        $result = $date->format('d-m-Y-H:i:s');
        $krr = explode('-', $result);
        $resultDateTime = implode("", $krr);

        $data = array('error' => 'Yükleme Sırasında Hata Oluştu');

        $kayit = "INSERT INTO tbl_Records(UserNameSurname, UserMail, UserGsm, UserAddress, DateAdded, UserIp, UserCityLocation, UserCountry, IsChecked, GivenPasscode) VALUES ('$fNameSurname', '$fMail', '$fGsm', '$fAddress', '$resultDateTime', '$UserIpAddress', '$UserCityLocation', '$UserCountry', '$fTerms', '$fPass')";
        $retval = mysql_query( $kayit, $conn ); // Update with you connection details
            if ($retval) {
                $data = array('success' => 'Register Completed', 'postData' => $_POST);
            }

        } // valid ends
    }echo json_encode($data);

原文由 James Lalor 发布,翻译遵循 CC BY-SA 3.0 许可协议

我遇到了类似的错误: SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data"

原来我已经从后端以 JSON 格式发送数据,所以当它到达前端时,我根本不应该使用 JSON.parse

 $.ajax({
    type: "get",
    url: 'https://localhost:8080/?id='+id,
    success: function (response) { // <- response is already JSON
        var data = $.parseJSON(response); // <- I removed this line
        modalShow(data); // <- modalShow(response) now works!
    }
});

原文由 Stefan Zhelyazkov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题