我有一个用户填写的表单,其中包含他们的名字,姓氏,电子邮件和毕业年份。我使用jQuery将它发送到名为form.php
的PHP表单,它执行某些操作,然后将字符串success
返回到前端。这在以前工作,但我刚添加了几行,现在当我向它发送POST请求时它给出了520:
Failed to load resource: the server responded with a status of 520 (HTTP/2.0 520)
但是,脚本中的所有按预期执行,并且没有(已知的)语法错误。该文件位于github上,可在此处找到:https://github.com/LAHSHackClub/lahs.club/blob/master/form.php
查看我的PHP日志时,它成功调用form.php
的请求:
[Mon Aug 28 05:31:21 2017] 127.0.0.1:33480 [200]: /form.php
(它在命令行中显示为绿色,表示已执行)
除了没有发送成功消息这一事实外,这并不是真正的游戏破坏。我可以做一个解决方法,但我觉得我应该解决这个问题。任何帮助表示赞赏!
谢谢!
答案 0 :(得分:0)
520错误本质上是一个“全能”响应,用于原始服务器返回意外事件或不允许/解释的事件(协议违规或空响应)。
对于你的情况,它很可能是服务器超时或服务器form.php响应null或没有响应你得到。
来自原点的空响应
答案 1 :(得分:0)
problem with the request/url, you may not get json back.
I get it now..
Problem in your form.js you set JSON request in $.post
``` $_POST['first_name'] is for the form-xxx data ```
Thats u get NULL response
您需要创建表单并在AJEX中尝试使用syntext
var data =$('#formid').serialize();
send 'data' to form.php in AJEX
答案 2 :(得分:0)
感谢JesseTheSkrub的帮助,我修复了它!基本上,最后一个exec
是:
exec('service apache2 reload');
这基本上切断了文件中间与服务器的连接,因此给出了520.为了解决这个问题,PHP有一个方便的功能:ignore_user_abort(true);
,我把它放在第1行到固定。谢谢杰西!