Ajax调用Django发送邮件无响应

1 投票
1 回答
716 浏览
提问于 2025-04-18 07:35

我在用Djrill从我的Django应用程序发送邮件。

我通过ajax调用处理发送邮件的视图,代码如下:

$.ajax({
        url: "/sendmail&name="+name+"&receiver="+email+"&phone="+phone+"&address="+address,
        type: 'GET',
        success: function(){
            console.log('done');
        }
    });

这个功能的views.py文件是:

def sendEmail(request):
    if 'receiver' in request.GET and request.GET['receiver']:
        name = request.GET['name']
        recv = request.GET['receiver']
        phone = request.GET['phone']
        address = request.GET['address']
        from django.core.mail import send_mail
        send_mail("Service name: "+name, "Phone Number: "+phone+" <br>Address: "+address, "<sender@example.com", [recv])
        return 'True Data'
    else:
        return 'False data'

Urls.py文件是:

url(r'^sendmail$', views.sendEmail, name='sendmail'),

但是,ajax调用的响应返回了一个404错误。

你知道这是怎么回事吗?

1 个回答

4

在请求中,URL 应该是 sendmail?,而不是 sendmail&

url: "/sendmail?name="+name+"&receiver="+email+"&phone="+phone+"&address="+address,
               ^ there

否则,它会寻找一个格式为 sendmail&name=(.+) 的 URL,但显然这个 URL 是不存在的。

想了解更多信息,可以查看 查询字符串结构(不过我觉得这也是你写错了)

撰写回答