我尝试在发送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))
我不知道问题是否来自于包含bootstrap,或者它在那里已经是合法的了。有什么需要帮忙的吗?
发布于 2015-04-24 00:07:19
根据我的经验,当尝试向php文件发送数据时,得到一个500错误,这意味着该文件中的php代码有问题。
虽然我不能确定可能的错误是什么,但我可以通过使用developers tools
向您展示如何查看php错误。选择network
选项卡以查看所有请求(您的ajax请求应该出现在这些请求中,并带有目标php文件名)。现在选择该请求,在response preview
下,您应该会看到导致上述500错误的php错误。
在修复了这个错误之后,您的请求应该可以工作(200个代码-成功)。
https://stackoverflow.com/questions/29676944
复制相似问题