首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django request.is_ajax返回false

Django request.is_ajax返回false
EN

Stack Overflow用户
提问于 2011-12-21 17:36:39
回答 4查看 33K关注 0票数 24

我正在使用Django + jQuery测试ajax。我的观点是:

代码语言:javascript
复制
def ajax_test(request):
    if request.is_ajax():
        message = "This is ajax"
    else:
        message = "Not ajax"
    return HttpResponse(message)

在我的模板中是这样的:

代码语言:javascript
复制
<!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>

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

EN

回答 4

Stack Overflow用户

发布于 2011-12-21 17:47:00

您可能已经打开了APPEND_SLASH (默认设置),并且Django正在从/ajax_test重定向到/ajax_test/,但不保留相关的头文件。最好首先请求带有斜杠的版本。

票数 6
EN

Stack Overflow用户

发布于 2011-12-22 00:28:22

将我的代码调整为:

views.py:

代码语言:javascript
复制
def index(request):
    return render_to_response('index.html',
                            locals(), context_instance=RequestContext(request)) 

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

urls.py:

代码语言:javascript
复制
urlpatterns = patterns('',   
    #    root
    url(r'^$', views.index, name='index'), 
    #    ajax
    url(r'^ajax_test/$', views.ajax_test, name='ajax_test'),
) 

模板:

代码语言:javascript
复制
 ...
 <script type="text/javascript">
 $(document).ready( function() {
     $.get("/ajax_test/", function(data) {
        alert(data);
     });
 });
 </script>
票数 1
EN

Stack Overflow用户

发布于 2011-12-21 20:28:12

尝试使用其他版本的jQuery...有可能问题出在js……

例如:

http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8587693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档