gpt4 book ai didi

javascript - 找不到由 hook_menu 定义的 drupal 7 页面

转载 作者:行者123 更新时间:2023-11-30 17:18:24 25 4
gpt4 key购买 nike

我已经尝试了我在 Internet 上找到的所有内容,但都无济于事。

该模块提供由 iframe 处理的外部身份验证。身份验证完成后,将向 drupal 页面上的套接字发送一条状态为成功或失败的消息。成功后,模块需要再次与外部服务器通信,获取drupal上的userid,完成登录。

两件事:(1) drupal 必须不知道外部凭证,并且(2) 外部验证器上的用户名/密码独立于drupal用户名/密码。

模块的名称是“yauisauth”。

鉴于此,我在 hook_menu 中有以下内容:

function yauisauth_menu() {
$items['yauisauth/callback/%'] = array(
'title' => 'yauis login completion',
'description' => 'coordinates yauis login with drupal login',
'access callback' => user_is_anonymous,
'file' => 'yauisauth.inc',
'page callback' => 'yauisauth_callback',
'page arguments' => array(2),
'type' => MENU_CALLBACK,
);
$items['yauisauth/failed'] = array(
'title' => 'login failed',
'description' => 'login failed',
'access callback' => user_is_anonymous,
'file' => 'yauisauth.inc',
'page callback' => 'yauis_login_failed',
'type' => MENU_CALLBACK,
);
return $items;

回调是从 javascript 调用的:

return_to = 'yauisauth/callback/';   
return_to += transid;
jQuery.post(return_to, null, null);

我得到的错误是:

POST http://localhost/drupal7/yauisauth/callback/4ddcd4ab-5167-4aa5-bafa-ee46812237d8 404 (Not Found) 

很明显,我没有以 drupal 希望看到的方式构建 url,但我不知道该怎么做。

最初,我在 yauisauth.module 中拥有所有函数,但后来将回调函数和它调用的函数拆分到 yauisauth.inc 中

在每次更改之间,我执行以下操作:

(在 mysql 中):

更新系统 SET status='0' WHERE name='yauisauth'; 从 cache_bootstrap 中删除,其中 cid='system_list';

然后在 bash 中:

drush -cc menu
drush -cc all

(盲目地遵循我能在网上找到的每条说明。)

回调函数如下所示:

function yauisauth_callback($transid) {
$attr = get_attributes($transid);
if (empty($attr)) {
return drupal_not_found();
}
... // calls to other functions local to the yauisauth.inc file
}

谁能告诉我为什么调用回调函数失败以及我可以做些什么来让它工作?

根据从别处收到的建议,我将我的 drupal 更改为驻留在虚拟主机的文档根目录中,并将整个 url 放入 javascript 调用中 - window.location.origin + '/yauisauth/callback'。一条警报通知我 url 构造正确。

我在永远不会执行的回调函数的开头有一个“die”。

如果我将 url 放在地址栏中,则会执行“die”语句以便找到路由。

仍在寻求建议。

最佳答案

我刚刚再次查看了您的代码 – 您在不需要下划线时添加了下划线,例如 page_callback 应该是 page callback。请参阅:https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu/7 .

关于javascript - 找不到由 hook_menu 定义的 drupal 7 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25652001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com