django Jquery ajax请求404错误

时间:2009-06-24 04:50:20

标签: jquery ajax django

我希望有人可以帮助我。我无法使用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

2 个答案:

答案 0 :(得分:0)

这看起来像是您的网址配置问题。以交互方式访问该URL(即尝试手动导航)会导致404?

关于Ajax请求的URLS并没有什么神奇之处,它们仍然只是URL - 像在Django应用程序中的任何URL一样调试它们。

除非我真的睡不着觉r'^xEmailExists/(?P\d+)$'有几个问题:

  1. 您使用的是named URL pattern而没有使用名称 - 将?P替换为?P<email>
  2. 您不希望\d+ - 即匹配1位或更多位数(即0-9)。您可能希望为了电子邮件验证而匹配所有字符。
  3. 另外,将电子邮件作为查询字符串传递的重点是什么?为什么不只是http://127.0.0.1:8000/xEmailExists/joeblow%40test.cc
  4. 希望有所帮助!如果我搞砸了正则表达式匹配,我会道歉 - 这是我倾向于纠正的事情之一,我没有测试我的回答。

答案 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']也会有效。