带有Django的XMLHttpRequest-> GET,错误500

时间:2019-05-08 14:54:40

标签: javascript django xmlhttprequest

我在views.py中的方法尝试获取product_slug,因为他需要product = Product.objects.get(slug=product_slug)并将此产品添加到购物车中。您尝试将XMLHttpRequestJS一起使用,但出现错误500。我在做什么错了?

urls.py

url(r'^cart/create/$', views.cart_create, name='cart_create'),

views.py

def cart_create(request):
    cart = Cart(request)
    product_slug = request.GET.get('product_slug')
    product = Product.objects.get(slug=product_slug)
    cart.add(product=product)

    return JsonResponse({'200':'OK'})

product_list.html

<a href="javascript:void(0);" class="add_to_cart" data-slug="{{ product.slug }}">Add</a>

base.html

var add_to_cart = document.getElementsByClassName('add_to_cart');

for(var i = 0; i < add_to_cart.length; i++) {
    product_slug = add_to_cart[i].getAttribute('data-slug')

    add_to_cart[i].onclick = function() {
        loadA(product_slug)
    }
}

function loadA(product_slug) {
    var xhr = new XMLHttpRequest();

    url = "{% url 'cart:cart_create' %}" + product_slug
    xhr.open('GET', url);

    xhr.send();

    if (xhr.status != 200) {
        console.log('no')
    } else {
        console.log('ye')
    }
}

console.log中输出no和错误(Internal Server Error)。请帮帮我。

我尝试使用干净的javascript/XMLHttp>而不用jQuery/Ajax

重写此代码
$(".add_to_cart").click(function() {
    product_slug = $(this).attr("data-slug")
    data = {
        product_slug: product_slug,
    },

    $.ajax({
        type: "GET",
        url: "{% url 'cart:cart_create' %}",
        data: data,
        success: function(data) {
            $(".cart_score").empty().append(data.cart_length + " товаров " + data.cart_total + " &#8381;")
        },
    });
});

0 个答案:

没有答案