POST到PHP脚本执行但给出错误520

时间:2017-08-28 05:50:28

标签: php jquery post

我有一个用户填写的表单,其中包含他们的名字,姓氏,电子邮件和毕业年份。我使用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

(它在命令行中显示为绿色,表示已执行)

除了没有发送成功消息这一事实外,这并不是真正的游戏破坏。我可以做一个解决方法,但我觉得我应该解决这个问题。任何帮助表示赞赏!

谢谢!

3 个答案:

答案 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行到固定。谢谢杰西!