未捕获的语法错误:JSON 中的意外标记 a 在位置 2

阿比贾伊斯

几个小时以来,我一直在疯狂地尝试使用外部获取和显示 json 数据,JSON.parse但在下面出现此错误

 VM935:1 Uncaught SyntaxError: Unexpected token a in JSON at position 2
    at JSON.parse (<anonymous>)
    at Object.<anonymous> ((index):698)
    at fire (jquery-3.3.1.js:3268)
    at Object.fireWith [as resolveWith] (jquery-3.3.1.js:3398)
    at done (jquery-3.3.1.js:9305)
    at XMLHttpRequest.<anonymous> (jquery-3.3.1.js:9548)

到目前为止,这是我的代码和努力。有人可以帮我解决这个问题。我会欣赏的。

攻击者.html

{% load static %}
{% block title %}
Shop - Tracker
{% endblock %}
{% block content %}
<section>
    <center>
        <div class="container">
            <div class="row">
                <div class="col-md-6 p-b-30">
                    <form class="leave-comment" method="POST" id="trackerForm" action="#">
                        {% csrf_token %}
                        <h4 class="m-text26 p-b-36 p-t-15">
                            Track Your order
                        </h4>
                        <div class="bo4 of-hidden size15 m-b-20">
                            <input class="sizefull s-text7 p-l-22 p-r-22" id="orderId" type="text" name="orderId" placeholder="Order Id" required>
                        </div>
                        <div class="bo4 of-hidden size15 m-b-20">
                            <input class="sizefull s-text7 p-l-22 p-r-22" id="email" type="email" name="email" placeholder="Email Address" required>
                        </div>
                        <div class="w-size25">
                            <!-- Button -->
                            <button class="flex-c-m size2 bg1 bo-rad-23 hov1 m-text3 trans-0-4">
                                Track your Order
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </center>
    <div class="container1">
        <div class="row">
            <div class="col-md-6 p-b-30">
                <h4 class="m-text26 p-b-36 p-t-15">
                    Track order
                </h4>
                <ul class="list-group" id="track">
                </ul>
            </div>
        </div>
    </div>
    <div class="container1">
        <div class="row">
            <div class="col-md-6 p-b-30">
                <h4 class="m-text26 p-b-36 p-t-15">
                    Your order Details
                </h4>
                <ul class="list-group" id="citem">
                </ul>
            </div>
        </div>
    </div>
</section>

{% endblock %}

{% block js %}
<script>
$('#trackerForm').submit(function(event) {
    $('#track').empty();
    var formData = {
        'orderId': $('input[name=orderId]').val(),
        'email': $('input[name=email]').val(),
        'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val()
    };
    $.ajax({
            type: 'POST',
            url: '/shop/tracker/',
            data: formData,
            encode: true
        })
        .done(function(data) {
            console.log(data);
            data = JSON.parse(data);
            updates = data[0];
            if (updates.length > 0 & updates != {}) {

                for (i = 0; i < updates.length; i++) {
                    let text = updates[i]['text'];
                    let time = updates[i]['time'];
                    mystr = '<li class="list-group-item"> ${text} <span class="badge"> ${time} </span></li>'
                    $('#track').append(mystr);

                }
            } else {
                mystr = 'sorry'
                $('#track').append(mystr);
            }
            //fill in the order Details
            cart = JSON.parse(data[1]);
            console.log(cart);
            for (item in cart) {
                let name = cart[item][1];
                let qty = cart[item][0];
                mystr = '<li class="list-group-item">${name}<span class="badge">${qty}</span></li>'
                $('#citem').append(mystr);
            }


        });
    event.preventDefault();
});
</script>
{% endblock %}

模型.py


class Order(models.Model):
    order_id = models.AutoField(primary_key=True)
    items_json = models.CharField(max_length=5000)
    name = models.CharField(max_length=90)
    email = models.CharField(max_length=111)
    address = models.CharField(max_length=111)
    city = models.CharField(max_length=111)
    state = models.CharField(max_length=111)
    zip_code = models.CharField(max_length=111)
    phone = models.CharField(max_length=111, default="")

    def __str__(self,):
        return self.name


class OrderUpdate(models.Model):
    update_id  = models.AutoField(primary_key=True)
    order_id = models.IntegerField(default="")
    update_desc = models.CharField(max_length=5000)
    timestamp = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.update_desc[0:7] + "..."

视图.py

from django.shortcuts import render, get_object_or_404
from .models import Order, OrderUpdate
import json
from django.http import HttpResponse


def tracker(request):
    if request.method=="POST":
        orderId = request.POST.get('orderId', '')
        email = request.POST.get('email', '')
        return HttpResponse(f"{orderId} and {email}")
        try:
            order = Orders.objects.filter(order_id=orderId, email=email)
            if len(order)>0:
                update = OrderUpdate.objects.filter(order_id=orderId)
                updates = []
                for item in update:
                    updates.append({'text': item.update_desc, 'time': item.timestamp})
                    response = json.dumps([updates, order[0].item_json], default=str)
                return HttpResponse(response)
            else:
                return HttpResponse('{}')
        except Exception as e:
            return HttpResponse('{}')

    return render(request, 'shop/tracker.html')
巴马

tracker()不返回 JSON。执行时返回

return HttpResponse(f"{orderId} and {email}")

并且从不执​​行在其中创建 JSON 的代码response并且执行

return HttpResponse(response)

摆脱第一return行。

还有,任务

response = json.dumps([updates, order[0].item_json], default=str)

应该在for循环之后,而不是在循环内部。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取SyntaxError:运行Lambda测试时,JSON意外标记u在位置0处

将数组从php传递到ajax时,JSON意外标记C在位置0处

JavaScript 错误 - 未捕获的语法错误:意外标记 {

错误语法错误:意外标记:在 JSON 中,角度 2 中的位置 6

未捕获的语法错误:JSON.parse 位置 0 处的 JSON 中的意外标记 d(<匿名>)

JSON 中的意外标记 u 在位置 0 使用 Angularjs POST 方法

JSON 中位置 0 处的意外标记

“解析器错误”语法错误:位置 0 处的 JSON 中的意外标记 <

未捕获的语法错误:Chrome 中的意外标记 {

语法错误:当获取 rails json 时,JSON 中的意外标记 o 在位置 1

语法错误:JSON 中位置 3 的意外标记 e

使用 Javascript 将字符串转换为对象(错误:JSON 中的意外标记 t 在位置 1)

JSON 中位置 2 的意外标记 N

Angular SyntaxError:JSON 中位置 0 的意外标记 P

未捕获的承诺拒绝语法错误:JSON 中的意外标记 u 位于位置 0

VM299:1 未捕获的语法错误:JSON.parse 位置 0 处的 JSON 中的意外标记 u(<匿名>)

JSON 中的意外标记 G 在位置 0 视频长度

语法错误:JSON 中的意外标记 o 在角度位置 1

undefined:1 undefined ^ SyntaxError: JSON 中的意外标记 u 在位置 0

反应 - JSON 中的意外标记 u 在位置 5

错误语法错误:JSON.parse 位置 0 处的 JSON 中的意外标记 u (<anonymous>)

JSON 中的意外标记 o 在位置 1 或无法读取未定义的属性“0”

<Jasmine> 位置 0 处的 JSON 中的意外标记 u

SyntaxError:JSON 中位置 0 Express 的意外标记

JSON 中位置 0 处的意外标记

Javascript - 无法读取 json 键值 - JSON 中的意外标记 i 在位置 1 - sql 查询输出问题

保存到本地存储 - 语法错误:JSON 中的意外标记 u 位于位置 0

未捕获的语法错误:控制台中 App.js:18:1 处 JSON.parse (<anonymous>) 位置 0 处 JSON 中的意外标记 u

未捕获的语法错误:JSON.parse 中位置 0 处的 JSON 中的意外标记 < - Wordpress