0

我在服务器端使用 jQuery 和 Django。我要做的是通过表单从用户那里获取一些文本,同时在画布区域中显示文本,如 about.me 和 flavor.me 所做的。然后用户将画布区域中的文本拖动到所需位置,当他们单击下一步按钮时,数据必须存储在数据库中并重定向到主页。一切正常(数据存储在数据库中),除非我单击我将 window.location 设置为的按钮,"http://127.0.0.1:8000".但是当我单击按钮时我没有进入该页面。

我在 Django 服务器中遇到一些错误:

error: [Errno 32] Broken pipe
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 51161)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock

这是我的 html: https ://gist.github.com/2359541

Django 视图.py:

从 cover.models 导入 CoverModel 从 django.http 导入 HttpResponseRedirect

def coverview(request):
    if request.is_ajax():
            t = request.POST.get('top')
            l = request.POST.get('left')
            n = request.POST.get('name')
            h = request.POST.get('headline')
            try:
                    g = CoverModel.objects.get(user=request.user)
            except CoverModel.DoesNotExist:
                    co = CoverModel(top=t, left=l, name=n, headline=h)
                    co.user = request.user
                    co.save()
            else:
                    g.top = t
                    g.left = l
                    g.name = n
                    g.headline = h
                    g.save()
            return HttpResponseRedirect("/")

网址.py:

url(r'^cover/check/$', 'cover.views.coverview'),
url(r'^cover/$', login_required(direct_to_template), {'template': 'cover.html'}),

有人可以帮我吗?

谢谢!

4

2 回答 2

0

部分问题是您尝试发布数据,然后使用 window.location 立即离开页面。只应在从 $.post() 获得响应时更改 window.location。

$.post("check/", { top: t, left: l, name: n, headline: h}, function(data) {
    window.location.href = "/";
});

另请注意,我删除了硬编码的 URL。就像克里斯说的那样,在这里使用亲戚。

如果仍然无法正常工作,您需要检查上面几行中的 Javascript 错误。使用 Firebug、Chrome 开发工具、Opera Dragonfly 等。检查以确保您的 POST 确实正在通过,并在此处发布更多有关该内容的数据。

于 2012-04-11T13:43:38.950 回答
0

您的问题中确实没有足够的信息来正确诊断此问题,但您可以尝试以下操作:

在JS 中硬编码域名总是一个坏主意。例如,当您将其投入生产时会发生什么?如果您想将用户发送到主页(假定位置设置为http://127.0.0.1:8000/),那么只需将位置设置为/。这将确保无论 IP 地址、域名或端口如何,它都会始终转到站点根目录。

于 2012-04-11T13:30:53.980 回答