【发布时间】:2015-03-10 16:01:26
【问题描述】:
我正在尝试在 django 项目中使用 jquery 处理 ajax POST 请求。
但我遇到了一个没有特定消息的错误。
我认为下面的一些列表假定有错误原因。
不包含在 POST 请求数据中的 CSRF-TOKEN
-
在我的 javascript 代码中,jquery 的 $.click() 方法不起作用。
(但实际上 $.mouseover() 方法是有效的。)
$('#input-submit').click(function() { console.log("before post request!!!"); $.post("/add_to_cart", { product_id : $(this).attr('pro-id'), quantity : $('#input-quan').val() }, function(event) { console.log("success post request!!!"); }, function(error){ console.log("error!!") }); });shops/static/js/script.js
-
我的表单元素使用错误。
<form action="{% url 'shops:add_to_cart' %}" method="post"> {% csrf_token %} <input type="text" id="input-quan"> <input type="submit" id="input-submit" pro-id="{{product.id}}" value="{{product.id}}"> </form>shops/template/shops/product_detail.html
另外,这是额外的代码。
def add_to_cart(request):
quantity = request.POST.get('quantity')
product_id = request.POST.get('product_id')
return HttpResponse(json.dumps({
"product_id" : product_id,
"quantity" : quantity,
}),content_type="application/json")
# output >>> {"product_id":null, "quantity":null}
shops/views.py
url(r'^detail/(?P<product_id>[0-9]+)$', views.product_detail, name="detail"),
url(r'^detail/add_to_cart$', views.add_to_cart, name="add_to_cart"),
url(r'^cart$', views.cart, name="cart"),
url(r'^cart/del_from_cart$', views.del_from_cart, name="del_from_cart"),
shops/urls.py
虽然传递给 django-view 的参数很简单,但我还是想使用 POST 请求。
我使用的是 django-1.7 版本。
请帮帮我。
【问题讨论】: