几个小时以来,我一直在疯狂尝试使用import cloneDeep from 'lodash/cloneDeep'
static transformBoardBasicInfo (rawBoard:any): any {
const clonedBoard: any = cloneDeep(rawBoard) as any
clonedBoard.info = this.getInfo(rawBoard)
return clonedBoard
}
从外部获取和显示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)
{% 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 %}
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] + "..."
答案 0 :(得分:2)
tracker()
不返回JSON。执行时返回
return HttpResponse(f"{orderId} and {email}")
并且永远不会执行在response
中创建JSON并执行的代码
return HttpResponse(response)
摆脱第一return
行。
也是
response = json.dumps([updates, order[0].item_json], default=str)
应该在for
循环之后,而不是在内部。