2017-07-11 292 views
1

我有一個奇怪的問題。昨天一切正常。POST Jquery AJAX錯誤500

我有一個簡單的PHP文件,內容如下:

<?php 

    if ($_SERVER['REQUEST_METHOD'] === 'POST') { 

    echo json_encode(['messageType' => 
    'success','message'=>$_POST['key']); 

    die(); 

    } 

和JS使用Ajax查詢文件:

$.ajax({ 

      dataType: "json", 

      type: "POST", 

      url: 'get.php', 

      data: {key: 'a'}, 

      success: function(data) { 

        alert(data.message) 

      }, 

      error: function(data) { 

      alert ('error');} 

     }); 

當現場的 '鑰匙' 設置爲1個字符(如「 a'),我從服務器收到錯誤500。但如果我將其更改爲至少3個字符,則一切正常。

這個問題在幾臺獨立的服務器上突然開始發生。

+0

我不知道會發生什麼,但我不認爲messageType之後的分號應該在那裏。 – Phiter

+0

沒錯。在原始文件中沒有; –

+0

'500'是由php或您的網絡服務器引起的。你必須檢查php和web服務器在錯誤日誌中顯示的這個請求。如果沒有日誌中的相應信息,就無法猜測,爲什麼它可以使用三個以上的字符,但會在三次以內失敗。 –

回答

0

錯誤500意味着您的PHP端點應該有問題。 起初刪除分號和嘗試,如果它的工作原理:

<?php 
    if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    echo json_encode(['messageType' =>'success','message'=>$_POST['key']); 
    die(); 
} 
0

如果沒有$ _ SERVER [「REQUEST_METHOD」]變量可用(這是與服務器相關),你會得到一個500從一開始。由於語法,json_encode也不起作用。

<?php 
    if (isset($_POST['key'])) { 
    echo json_encode(array('messageType' => 'success','message'=>$_POST['key'])); 
    die(); 
    } 
?>