在联系表格上花了3天后,我想我最好问一下。我的服务器需要一分多钟才能验证我的recaptcha。详情如下。
我在Apache2 / Ubuntu 12.04上运行了Django cms 3和Django 1.6应用程序。在没有时间让cmsplugins_contacts徒劳无功后,我只是选择创建自己的表单。
在我的本地计算机上,一切都运行得非常顺畅,但是一旦我进入服务器,我就遇到了问题。
表单验证不起作用,精确验证验证码验证需要超过一分钟,而我的$ .ajax调用会超时。
它偶尔会发生一次,但随后会再次出现问题。
我尝试更改插件以从表单中删除验证码,并使用recaptcha-client手动执行。我真的不知道还有什么可以尝试。
这是我的代码的一小部分示例,如有必要,我可以提供更多
Django观点:
...
captcha_response = captcha.submit(
request.POST.get('recaptcha_challenge_field'),
request.POST.get('recaptcha_response_field'),
settings.RECAPTCHA_PRIVATE_KEY,
request.META['REMOTE_ADDR'],)
...
来自模板的ajax调用:
$.ajax({
url: '//{{request.get_host}}/{{request.LANGUAGE_CODE}}/contacts_plugin_submit',
data: $(form).serialize(),
type: 'POST',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function(data){
//success
},
error: function(e){ //error
}
});
我还发现一个人说要在我的服务器上禁用IPV6因为一个奇怪的隧道,我试图启动命令,但netsh不是我服务器上的程序。我想尝试以下命令:
netsh int ipv6 isatap set state disabled
netsh int ipv6 6to4 set state disabled
netsh int teredo set state disabled
我应该尝试这种方式吗?
谢谢, LOCKIT
答案 0 :(得分:0)
我不相信......
我希望我可以用这个帮助别人,因为我只是认为是疯狂......
禁用IPV6是解决方案!
以下是如何使用ubuntu 12.04:
将这些行添加到sysctl.conf文件
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
然后运行' sudo sysctl -p'或重新启动。
感谢这个答案,让我以正确的方式前进:https://serverfault.com/questions/568006/connecting-to-api-verify-recaptcha-net-from-server-programatically-is-very-slow
希望这会对某人有所帮助。