2015-04-16 44 views
2

我試圖發送jQuery的崗位後打電話到db_update(),所以我需要包括drupal_bootstrap使用Drupal的功能,這裏是我的代碼:500(服務不可用(有消息))

MyModuleAPI.php

if (!defined('DRUPAL_ROOT')) { 
    define('DRUPAL_ROOT', $_SERVER['DOCUMENT_ROOT']. 'mysite'); 
    chdir(DRUPAL_ROOT); 
} 
include_once(DRUPAL_ROOT.'/includes/bootstrap.inc'); 
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE); 

function set_server($host,$port){ 

     db_update('server')... 
        ->execute(); 
    ... 
} 

$query = isset($_POST['query']) ? $_POST['query']: null; 
$params = isset($_POST['params']) ? $_POST['params']: null; 

switch ($query) 
{ case "set_server" : 
     ... 
     set_server($host,$port); 
     break; 

} 

MyModuleAjax.js

function ajax_set_server(serverHost,serverport){ 
    var pathUrl="path/to/includes/MyModuleAPI.php"; 

     jQuery.ajax({ 
      type: "POST", 
      url: pathUrl, 
      data: {query: "set_server", params:[serverHost,serverport]}, 
      success: function (response) {     
       console.log("set server resp "+response); 
       return false; 
      } 
     }); 
} 

我的問題發送請求時,我得到:

POST http://localhost/path/to/includes/MyModuleAPI.php 500 (Service unavailable (with message)) 

我不知道問題是從包括bootstrap還是在那裏已經合法。請任何幫助。

+2

使用您的瀏覽器「開發人員工具」 - >「網絡」選項卡並查找該請求 - 「響應預覽」輸出是什麼?我猜想有一個PHP錯誤,並提到輸出將幫助您找到錯誤。 –

+0

@OfirBaruch非常有幫助,我現在收到明確的錯誤信息,謝謝 – Oumaya

+0

如果我把它寫成答案,你會接受嗎?或者您希望我也幫助您解決錯誤信息? –

回答

3

根據我的經驗,在嘗試將數據發送到php文件時發生500錯誤意味着該文件中的php代碼有問題。

儘管我不確定錯誤可能是什麼,我當然可以告訴你如何使用developers tools來查看php錯誤。選擇network選項卡以查看所有請求(您的ajax請求應該出現在它們之間,包含目標php文件名)。現在選擇該請求,並根據response preview您應該看到導致上述500錯誤的php錯誤。

修復該錯誤後,您的請求應該可以工作(200代碼 - 成功)。