我希望有人可以帮助我。我无法使用django,jquery和jquery表单验证插件进行成功的ajax调用。我正在尝试将表单电子邮件地址传递给视图方法,以查看它是否存在于db中。但是ajax请求的服务器响应是404。在Firebug中,我可以看到正在发送的请求似乎格式正确。
发送的请求是:http://127.0.0.1:8000/xEmailExists/?email=joeblow%40test.cc
urls.py有:(r'^ xEmailExists /(?P \ d +)$','hwa.website.views.root.xEmailExists'),
和我的hwa.website.views.root视图文件具有以下方法签名: def xEmailExists(请求,电子邮件):
我正在使用Django 1.1 Bet
答案 0 :(得分:0)
这看起来像是您的网址配置问题。以交互方式访问该URL(即尝试手动导航)会导致404?
关于Ajax请求的URLS并没有什么神奇之处,它们仍然只是URL - 像在Django应用程序中的任何URL一样调试它们。
除非我真的睡不着觉r'^xEmailExists/(?P\d+)$'
有几个问题:
?P
替换为?P<email>
。\d+
- 即匹配1位或更多位数(即0-9)。您可能希望为了电子邮件验证而匹配所有字符。http://127.0.0.1:8000/xEmailExists/joeblow%40test.cc
?希望有所帮助!如果我搞砸了正则表达式匹配,我会道歉 - 这是我倾向于纠正的事情之一,我没有测试我的回答。
答案 1 :(得分:0)
正如多米尼克所说,问题在于你的urls.py
,但我不确定他是否有正确的解决方案。
首先,将urls.py
修改为以下内容:
(r'^xEmailExists/$', 'hwa.website.views.root.xEmailExists'),
然后,在xEmailExists
视图中,您可以使用request.GET
获取电子邮件地址:
def xEmailExists(request):
email = request.GET.get('email', '')
# check if email exists and return...
这会将?email=test@example.com
从查询字符串中拉出来。如果GET.get('email', '')
不在查询字符串中,则使用'email'
会返回默认值(空字符串),但如果您确定它将在那里GET['email']
也会有效。