簡體   English   中英

Django、Ajax 和 GET 請求

[英]Django, Ajax and GET requests

這里有很多類似的問題,但我無法解決我遇到的那個問題。 理論上情況很簡單 - 我將 json 發送到 Django 視圖,我得到了一個 json 響應。 我用 python、Django 和 REST 框架做到了。 但是使用 Ajax 我無法做到,URLconf 和 ajax 的相對 url 有一些問題,我無法弄清楚出了什么問題以及如何使其工作。 我的意思是通過一些 URL confs,我可以使用我的 chrome 插件發送請求,並且我有我需要的響應,但是 ajax 使用該 confs 獲得 404。 如果我更改它,Django 開始返回我的 html 頁面而不是 json 響應。 我在這里缺少什么? 我的ajax請求:

$.ajax({
        url: 'ajax/apply_city/',
        type: 'GET',
        data: {
            'city': obj.textContent
        },
        dataType: 'json',
        success: function(data) {
            var str = '';
            data.districts.forEach(function (district) {
                str += '<a class="dropdown-item" href="#" onclick="applyDistrict(this)">' + district + '</a>';
            });
            window.alert(str);
            document.getElementById("district_dropdown").innerHTML = str;
        },
    });

適用於所有請求但不適用於 ajax 的 url:

    re_path('^index/$', views.index, name='index'),
    re_path('^index/ajax/apply_city/', views.apply_city, name='apply_city'),

日志顯示Not Found: /index/...當 ajax 發出請求和GET /index/... 404 我已經看到,對於 ajax,我不應該用$符號關閉 url。 如果我這樣做^index/我得到 HTML 頁面作為響應(但使用 HTTP200)。 也許這是一些 Django 問題,或者我不明白如何正確地做到這一點。 如果有人知道如何解決它,請幫助。

可能是您輸入了錯誤的 URL。 您可以嘗試更改 ajax 中的 URL,如下所示:

url: "{% url 'apple_city' %}",

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM