ajax - Django request.is_ajax 返回 false

标签 ajax django

我正在用 Django + jQuery 测试 ajax。我的看法是这样的:

def ajax_test(request):
    if request.is_ajax():
        message = "This is ajax"
    else:
        message = "Not ajax"
    return HttpResponse(message)

这在我的模板中:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery-1.6.4.js"></script>
</head>
<body>
<script>
$.get("/ajax_test", function(data) {
    alert(data);
    });
});
</script>
</body>
</html>

我的问题是 - 为什么这会返回“Not ajax”到我的 html 页面?

最佳答案

我不知道你怎么了。我测试并收到一条好消息:This is ajax .我的代码:

urls.py

url(r'^$', 'myapp.views.home', name='home'),
url(r'^ajax_test/$', 'myapp.views.ajax_test', name='ajax_test'),

View .py
def home(request):
    return render_to_response('home.html', {},
                          context_instance=RequestContext(request))

def ajax_test(request):
    if request.is_ajax():
        message = "This is ajax"
    else:
        message = "Not ajax"
    return HttpResponse(message)

模板/home.html
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
    $(document).ready(function () {
        $.get("/ajax_test/", function (data) {
            alert(data);
        });
    });
</script>
</body>
</html>

关于ajax - Django request.is_ajax 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8587693/

相关文章:

python - requests.exceptions.ConnectionError : HTTPConnectionPool(host ='127.0.0.1' , 端口 = 8000):超过最大重试次数,网址:/api/1/

python - 使用来自 Python 请求的 POST 数据在 Django 中创建新模型

python - Django 中的 for 循环

python - 使用 python (django) 进行 AWS Elastic Beanstalk 日志记录

python - 重构Django基于类的 View ,清理18个重复类。

javascript - 像 facebook 一样从 Javascript 更改 URL

python - Flask-wtf : csrf_token is removed from session before I can POST my form

php - 如何将 jQuery 语句应用于在运行时加载的元素?

javascript - 如何让我的代码看起来像 jquery 风格的 ajax

javascript - 附加选项以仅选择框一次而不是多次