0

虽然我设法获得了一个有效的 AJAX 调用,但它不适用于我已经创建的操作,而不是新创建的操作。

我的打字稿看起来像这样:

    
    lib.AJAXPrototype= PAGE
    lib.AJAXPrototype {
      typeNum = 896571
      config {
        disableAllHeaderCode = 1
        xhtml_cleaning = 0
        admPanel = 0
              debug = 0
              no_cache = 1
        additionalHeaders = Content-type:text/html
      }
    }

    AJAX_Plugintyp < lib.AJAXPrototype
    AJAX_Plugintyp {
      typeNum = 89657201
      10 < tt_content.list.20.myext_myplugin1
    }

我的 AJAX 调用如下所示:

    $.ajax({
      url: "index.php",
      data: "tx_myext_myplugin1[controller]=Mycontroller1&tx_myext_myplugin1[action]=ajax&type=89657201",
      success: function(result) {
        alert(result);
      }
    });

我的ajaxAction:

          /**
         * action ajax
         *
         * @return void
         */
        public function ajaxAction() {
            $test = 'sometext';
            $this->view->assign('test', $test);
        }
    

我的 Ajax.html(查看/输出):

    <f:section name="main">
    <f:flashMessages />
    <div id="ajaxd">{test}</div>
    </f:section>

我不会从中得到任何输出,我只是为 Ajax 输出创建了这个动作。但是,如果我使用任何其他控制器/动作组合,它就可以工作!我可能对新的 Action 做错了什么?

4

2 回答 2

2

关于 ajax 和 Extbase 的两件事

首先将 JS 直接放在视图中通常会失败,因为 Fluid 试图将 JavaScript 的数组解析为自己的数组/变量。很不舒服。解决方案是将 JS 放在单独的文件中(因此我问了你一个关于这个的问题)。看到这个问题/答案

第二件事是Firebug(或其他类似工具)。Extbase 链接的超长路径很容易在其中犯一些恼人的错误,然后您需要逐个字符仔细比较。

Firebug 将帮助您快速找到 AJAX 问题,只需打开它切换到Net选项卡,然后您将看到在某些操作后使用 ajax 发送的内容以及返回的内容。很可能你收到了类似的东西:

Uncaught TYPO3 Exception:
The action "xxxxx" (controller "Yyyy") is not allowed by this plugin...

但检查它的唯一方法是使用 Firebug 进行调试 :)

于 2012-05-23T10:06:28.313 回答
0

好的,现在它可以工作了。这听起来可能很疯狂,但我并没有真正改变任何东西来让它工作。

我确实忘记将它添加到 ext_localconf.php:

    
        Tx_Extbase_Utility_Extension::configurePlugin(
            $_EXTKEY,
            'Myplugin1',
            array(
                'Mycontroller' => 'list, ajax',
            ),
            // non-cacheable actions
            array(
                'Mycontroller' => 'list, ajax',
            )
        );
        

但是,我昨天做了这个,后来它没有用。今天我再次尝试在打字稿中进行一些随机编辑(更改页面类型等),突然它起作用了!但是,我回到了昨天的确切状态,它仍然有效。我很困惑,不知道我是否只需要重新排列打字稿,或者是否出于某种原因不得不重新编写它,但我很高兴它现在可以工作了!

于 2012-05-23T09:18:31.037 回答