Php TYPO3 ajax 404 eID未注册

Php TYPO3 ajax 404 eID未注册,php,jquery,ajax,typo3,Php,Jquery,Ajax,Typo3,我有打字错误37.6.18。我正在尝试在前端配置ajax请求。我需要我的ajax请求调用我需要的特定插件控制器和操作。我试过不同的ajaxDispatchers 现在我得到错误404 eID未注册 我将ajaxDispatcher包含在local_conf.php中 $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['Fefiles'] = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::ex

我有打字错误37.6.18。我正在尝试在前端配置ajax请求。我需要我的ajax请求调用我需要的特定插件控制器和操作。我试过不同的ajaxDispatchers

现在我得到错误404 eID未注册

我将ajaxDispatcher包含在local_conf.php中

$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['Fefiles'] = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('fefiles').'Classes/Ajax/EidDispatcher.php';
EidDispatcher.php

<?

use \TYPO3\CMS\Core\Core\Bootstrap;
use \TYPO3\CMS\Core\Utility\ArrayUtility;
use \TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
use \TYPO3\CMS\Core\Utility\GeneralUtility;
use \TYPO3\CMS\Frontend\Utility\EidUtility;/**/

/**
 * Gets the Ajax Call Parameters
 */
$_gp = \TYPO3\CMS\Core\Utility\GeneralUtility::_POST();
$_gp = \TYPO3\CMS\Extbase\Utility\ArrayUtility::arrayMergeRecursiveOverrule(
    $_gp,
    \TYPO3\CMS\Core\Utility\GeneralUtility::_GET()
);

$ajax = array();
$ajax['arguments']  = $_gp;
$ajax['vendor']     = 'Nng';
$ajax['extensionName']  = 'Nnfesubmit';
$ajax['pluginName']     = 'Pi1';
$ajax['controller']     = 'Eid';
$ajax['action']     = 'processRequest';



/**
 * @var $TSFE \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
 */
global $TYPO3_CONF_VARS;

$TSFE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController', $TYPO3_CONF_VARS, 0, 0);
$GLOBALS['TSFE'] = $TSFE;

\TYPO3\CMS\Frontend\Utility\EidUtility::initLanguage();
\TYPO3\CMS\Frontend\Utility\EidUtility::initTCA();
// Get FE User Information
$TSFE->initFEuser();
$TSFE->initUserGroups();
// Important: no Cache for Ajax stuff
$TSFE->set_no_cache();

$TSFE->checkAlternativeIdMethods();
$TSFE->determineId();
$TSFE->initTemplate();
$TSFE->getConfigArray();
\TYPO3\CMS\Core\Core\Bootstrap::getInstance();

$TSFE->cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');
$TSFE->settingLanguage();
$TSFE->settingLocale();

/**
 * Initialize Backend-User (if logged in)
 */
$GLOBALS['BE_USER'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Authentication\BackendUserAuthentication');
$GLOBALS['BE_USER']->start();

/**
 * Initialize Database
 */
$TSFE->connectToDB();

/**
 * @var $objectManager \TYPO3\CMS\Extbase\Object\ObjectManager
 */
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');

/**
 * Initialize Extbase bootstap
 */
$bootstrapConf['extensionName'] = $ajax['extensionName'];
$bootstrapConf['pluginName']    = $ajax['pluginName'];

$bootstrap = new \TYPO3\CMS\Extbase\Core\Bootstrap();
$bootstrap->initialize($bootstrapConf);
$bootstrap->cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');

/**
 * Build the request
 */
$request = $objectManager->get('TYPO3\CMS\Extbase\Mvc\Request');

$request->setControllerVendorName($ajax['vendor']);
$request->setcontrollerExtensionName($ajax['extensionName']);
$request->setPluginName($ajax['pluginName']);
$request->setControllerName($ajax['controller']);
$request->setControllerActionName($ajax['action']);
$request->setArguments($ajax['arguments']);


//$ajaxDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Nng\Nnsubscribe\Controller\EidController');
//echo $ajaxDispatcher->processRequestAction();

$response = $objectManager->get('TYPO3\CMS\Extbase\Mvc\ResponseInterface');
$dispatcher = $objectManager->get('TYPO3\CMS\Extbase\Mvc\Dispatcher');
$dispatcher->dispatch($request, $response);

echo $response->getContent();




?>

我认为它不仅对我有用,对其他用户也有用。各位,请帮我解决这个问题,并了解这是什么。非常感谢你的建议

$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['ajaxDispatcher']


['ajaxDispatcher']此处必须与您在eID中发送的内容相同)

$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['ajaxDispatcher']


['ajaxDispatcher']此处必须与您在eID中发送的内容相同)

您的eID必须在url中设置,而不是在post数据中设置。 请求应为:

var请求={ id:1, mvc:{ 供应商:“Istar”, 扩展名:“Fefiles”, pluginName:‘Piphoto’, 控制员:'照片', 行动:“测试” },

    };

    $.ajax({
        type: "POST",
        url: "index.php?eID=Fefiles",
        data: {
            request:   request
        },
        success: function(msg){
            console.log(msg);
        }
    });

您的eID必须在url中设置,而不是在post数据中设置。 请求应为:

var请求={ id:1, mvc:{ 供应商:“Istar”, 扩展名:“Fefiles”, pluginName:‘Piphoto’, 控制员:'照片', 行动:“测试” },

    };

    $.ajax({
        type: "POST",
        url: "index.php?eID=Fefiles",
        data: {
            request:   request
        },
        success: function(msg){
            console.log(msg);
        }
    });

使用ExtBASE时,请考虑使用页面类型而不是EID。请参阅此博客文章:

在使用ExtBASE时请考虑使用页面类型而不是EID。请参阅此博客文章: