【发布时间】:2018-10-05 13:01:18
【问题描述】:
我有一个成功点击此网址的表单:
url(r'(?P<slug>[a-z0-9-_]+?)-(?P<product_id>[0-9]+)-(?P<hotel>[0-1]+)-(?P<shuttle>[0-1]+)/add/$',
views.product_add_to_cart, name="add-to-cart"),
这是表格:
<form id="product-form" role="form" class="product-form clearfix" method="post"
action="{% url 'product:add-to-cart' product_id=product.pk slug=product.get_slug hotel=1 shuttle=1 %}" novalidate>
</form>
但是,当我尝试通过像这样的 AJAX 调用点击按钮点击相同的网址时:
$(".book-event-variants .book-main").click(() => {
const id = $(".book-main").attr("event-id");
const slug = $(".book-main").attr("event-slug");
$.ajax({
url: "/products/" + slug + "-" + id + "-0-0/add",
type: 'POST',
success: () => {
onAddToCartSuccess();
},
error: (response) => {
onAddToCartError(response);
}
});
});
我收到一个错误:
jquery.js?eedf:9566 POST http://127.0.0.1:8000/products/sofia-fall-2018-1-0-0/add 404(未找到)
为什么两者有区别?
为什么我不能拨打电话?
第一个问题:不同的命名空间是否会成为问题。例如我正在从不同的应用程序模板执行 AJAX 请求。
【问题讨论】:
-
你可以尝试在ajax url中添加这个url:
"/products/" + slug + "-" + id + "-0-0/add/" -
@RajaSimon 现在我收到127.0.0.1:8000/products/sofia-fall-2018-1-0-0/add 400(错误请求)这可能是因为缺少 crsf 令牌吗?