Uncaught SyntaxError: Unexpected token < in JSON at Function.parse [as parseJSON] (<anonymous&

Posted

技术标签:

【中文标题】Uncaught SyntaxError: Unexpected token < in JSON at Function.parse [as parseJSON] (<anonymous>) 位置 0【英文标题】:Uncaught SyntaxError: Unexpected token < in JSON at position 0 at Function.parse [as parseJSON] (<anonymous>) 【发布时间】:2018-08-27 20:12:55 【问题描述】:

我在向 mysql 数据库添加数据时遇到问题,下面是代码(如果需要,我也可以添加 php 代码)。它说:

在 Function.parse [as parseJSON] at Object.success (form.js:16) at u (jquery.min.js:2) 在 Object.fireWith [as resolveWith] (jquery.min.js:2) 在 k (jquery.min.js:2) 在 XMLHttpRequest.(jquery.min.js:2)

$(document).ready(function() 
    $('form').submit(function(event) 
        var json;
        event.preventDefault();
        $.ajax(
            type: $(this).attr('method'),
            url: $(this).attr('action'),
            data: new FormData(this),
            contentType: false,
            cache: false,
            processData: false,
            error: function (xhr, status, err) 
                console.error(this.props.url, status, err.toString());
            .bind(this),
            success: function(result) 
                json = jQuery.parseJSON(result);
                if (json.url) 
                    window.location.href = '/' + json.url;
                 else 
                    alert(json.status + ' - ' + json.message);
                
            ,
        );
    );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Content Header (Page header) -->
    <section class="content-header">
        <h1>
            ახალი აქციის დამატება
        </h1>
       <!-- <ol class="breadcrumb">
            <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
            <li><a href="#">Forms</a></li>
            <li class="active">General Elements</li>
        </ol>-->
    </section>

    <!-- Main content -->
    <section class="content">
        <div class="row">
            <!-- left column -->
            <div class="col-md-12">
                <!-- general form elements -->
                <div class="box box-primary">

                    <!-- /.box-header -->
                    <!-- form start -->
                    <form action="/admin/addslider" method="post">
                        <div class="box-body">
                            <div class="form-group">
                                <label for="title">აქციის სათაური</label>
                                <input type="text" class="form-control" name="title" placeholder="აქციის სათაური">
                            </div>
                            <div class="form-group">
                                <label for="image">სურათის მიმაგრება</label>
                                <input type="file" name="img">

                                <!--<p class="help-block">Example block-level help text here.</p>-->
                            </div>

                            <div class="form-group">
                                <label>აქციის აღწერა</label>
                                <textarea class="form-control" name="description" rows="3" placeholder="Enter ..."></textarea>
                            </div>

                            <div class="form-group">
                                <label for="position">აქციის პოზიცია</label>
                                <input type="number" class="form-control" name="pos" min="1" max="20" >
                            </div>
                        </div>
                        <!-- /.box-body -->

                        <div class="box-footer">
                            <button type="submit" class="btn btn-primary">ატვირთვა</button>
                        </div>
                    </form>
                </div>
                <!-- /.box -->
        </div>
        <!-- /.row -->
    </section>
    <!-- /.content -->

【问题讨论】:

您的服务器可能正在向您返回错误,因此您收到的答案以 html 标记开头。尝试删除 console.log() 以查看您的回复是什么样的。 是PHP代码有问题。它返回&lt;notice&gt;&lt;warning&gt; 或类似...您可以在Chrome 调试工具的Network 选项卡中查看响应。它会告诉你必须调试的 PHP 错误是什么。 【参考方案1】:

删除这一行

json = jQuery.parseJSON(result);

您收到的响应似乎已经是一个 JSON 对象。

【讨论】:

【参考方案2】:

试试这个,因为我也遇到了同样的问题,我用下面的代码解决了。

var jsonResult= Json(result, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;

其中result 是您要传递给cshtml 中的ajax 方法的对象。

【讨论】:

以上是关于Uncaught SyntaxError: Unexpected token < in JSON at Function.parse [as parseJSON] (<anonymous&的主要内容,如果未能解决你的问题,请参考以下文章

Uncaught (in promise) SyntaxError: Unexpected end of JSON input error

面对“Uncaught SyntaxError: Unexpected token ''”

Uncaught SyntaxError: Invalid shorthand property initializer

Webpack Babel 加载错误 - Uncaught SyntaxError: Unexpected token import [重复]

Uncaught SyntaxError: Invalid shorthand property initializer

解决 Uncaught SyntaxError: Unexpected token ‘<‘ 问题的一个方法