2017-08-28 106 views
0

我有一個用戶填寫的表單,它有他們的名字,姓氏,電子郵件和畢業年份。我使用jQuery將它發送到名爲form.php的PHP表單,該表單執行某些操作,然後將字符串success返回到前端。這是以前的工作,但我只是增加了一對夫婦更行,而現在它提供了520,當我發送POST請求到它:POST到PHP腳本執行,但給出了錯誤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

嘗試使用除form.php以外的其他名稱。也許它會幫助 – user3808887

+0

'這在以前工作,但我只是增加了幾行......' - 你添加了什麼?您是否試圖查看https://support.cloudflare.com/hc/en-us/articles/200171936-Error-520-Web-server-is-returning-an-unknown-error和https:// support.cloudflare.com/hc/en-us/articles/222971907-Using-CURL-When-Troubleshooting-with-Cloudflare頁面? – Neodan

+0

@ user3808887但是它在...之前工作,那與它無關。 @Neodan它更像'exec()',我不認爲它會改變任何事情。是的,我看到了那篇文章。 –

回答

0

由於JesseTheSkrub的幫助下,我定了!從本質上講,最後exec是:

exec('service apache2 reload'); 

這基本上切斷在該文件的中間服務器的連接,從而給人一種520爲了解決這個問題,PHP有一個方便的功能:ignore_user_abort(true);,我在第一行上修復。謝謝傑西!

0

520錯誤本質上是一個「全部捕獲」的響應,當原始服務器返回某些意外事件或某些不被容忍/解釋(協議違反或空響應)時。

對於你的情況,它很可能是一個服務器超時或服務器form.php響應null或沒有迴應你得到。

從原產

+0

1.服務器超時:即使完全執行,php腳本是否可以超時? 2.響應null:我查看了所有的情況,它不能爲空。檢查我的github回購。 3.空洞的迴應:再次,不可能。會是什麼呢? –

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 

空響應您需要創建形式和嘗試的部份SYNTEXT AJEX中

var data =$('#formid').serialize(); 

send 'data' to form.php in AJEX 
+0

這不起作用,也沒有任何意義。 –

+0

$ _POST ['first_name'] this not get json data u pass json so so not get value okky if you not believe use POSTMAN for check request –

+0

'$ _POST ['first_name']'不是問題,因爲它在工作之前,我傳遞一個輸入值,這是一個STRING。這也不應該給出錯誤520。 –