我在发送jquery post之后尝试调用db_update()
,所以我需要包含drupal_bootstrap来使用Drupal函数,这是我的代码:
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))
我不知道问题是来自包括引导程序还是在那里已经合法。请帮忙。
答案 0 :(得分:3)
根据我的经验,尝试将数据发送到php文件时出现500错误意味着该文件中的php代码有问题。
虽然我无法确定错误是什么,但我确定可以通过developers tools
向您展示如何查看php错误。选择network
选项卡以查看所有请求(您的ajax请求应该出现在其中,目标php文件名)。现在选择该请求,在response preview
下你应该看到导致上述500错误的php错误。
在您修复该错误后,您的请求应该有效(200代码 - 成功)。