我在服务器端使用jQuery和Django。我想要做的是从用户通过表单获取一些文本,同时在画布区域中显示文本,如about.me和flavors.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 views.py:
来自cover.models的导入CoverModel 来自django.http import 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("/")
urls.py:
url(r'^cover/check/$', 'cover.views.coverview'),
url(r'^cover/$', login_required(direct_to_template), {'template': 'cover.html'}),
有人可以帮助我吗?
谢谢!
答案 0 :(得分:0)
你的问题中没有足够的信息来正确诊断这个,但你可以试试这个:
总是总是在JS中对域名进行硬编码是一个坏主意。例如,当您将其用于生产时会发生什么?如果您要将用户发送到主页(假设从设置为http://127.0.0.1:8000/
的位置),请将位置简单地设置为/
。这将确保无论IP地址,域名或端口如何,它始终会转到站点根目录。
答案 1 :(得分:0)
部分问题在于您尝试发布数据,然后使用window.location立即离开页面。每当从$ .post()获得响应时,您应该只更改window.location。
$.post("check/", { top: t, left: l, name: n, headline: h}, function(data) {
window.location.href = "/";
});
另请注意,我删除了硬编码的网址。在这里使用一个相对的,就像克里斯说的那样。
如果仍然无法正常工作,则需要在上面的行中检查Javascript错误。使用Firebug,Chrome开发工具,Opera Dragonfly等等。检查以确保您的POST确实正在通过,并在此处发布有关该数据的更多数据。