当前位置: 首页 > 知识库问答 >
问题:

Typo3 9带页面类型返回的Ajax请求404

孙承
2023-03-14

我的网站有一个使用AJAX嵌入的搜索过滤器表单。当我使用简单类型参数访问页面时,它返回内容,但当我尝试使用GET传递其他参数时,它显示404。例子:http://www.website.com/?type=871(显示默认内容)http://www.website.com/?type=871

JQuery Ajax代码

 $.ajax({
                    type: 'GET',
                    url: $(this).attr('action') + '?type=871',
                    data: $(this).serialize(),
                    success: function (data) {
                        $('#searchresults').html(data);

                    }
                });

打字码

  mlAjax = PAGE
mlAjax {
    typeNum = 871
}

    [globalVar = GP:type = 871]
        config {
            disableAllHeaderCode = 1
            xhtml_cleaning = 0
            admPanel = 0
            debug = 0
            no_cache = 1
        }

        tt_content.list.10 >

        // Insert content that can handle the request
        mlAjax {
            10 = COA
            10 {

                10 = USER
                10 {
                    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run


                }

            }
        }
    [global]

表单标签

  <f:form id="searchform" action="searchResult" method="get" noCacheHash="TRUE">

共有1个答案

段干英杰
2023-03-14

我在TYPO3 v9和v10中经常使用的一种工作方法:

你的HTML。html

<f:form action="searchform" 
        class="form class_ajax" 
        object="{search}" 
        pageUid="{settings.flexform.pages.list.pid}" 
        name="search" 
        noCache="true" 
        method="post" 
        pageType="871"
>

这里非常重要的一点是,您还应该包含pageType

设置。打字稿

ajaxSearch_page = PAGE
ajaxSearch_page {
    typeNum = 871
    10 = USER
    10.userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    10.extensionName= ExtensionName
    10.pluginName = PluginName
    10.vendorName = Vendor

   config {
      disableAllHeaderCode = 1
      additionalHeaders = Content-type:application/json
      xhtml_cleaning = 0
      debug = 0
      no_cache = 1
      admPanel = 0
   }
}

您不需要[globalVar=GP: type=871],因为您已经在pageType 871上定义了要使用另一个PAGE配置。

请确保你的打字稿和我写的一模一样

YourJs。js

var resultContainer = $('#yourContainer');
    var service = {
        ajaxCall: function (url) {
            $.ajax({
                url: url,
                cache: false,
                data: {url: url},
                method: 'POST',
                success: function (result) {
                    resultContainer.html(result).fadeIn('fast');
                },
                error: function (jqXHR, textStatus, errorThrow) {
                    resultContainer.html('Ajax request - ' + textStatus + ': ' + errorThrow).fadeIn('fast');
                }
            });
        }
    };

$(document).on('click', '#searchform', function (ev) {
        var url=$(this).attr('action');
        ev.preventDefault();
        service.ajaxCall(url);
    });

config/sites/yourSite/config。亚马尔

routeEnhancers:
  PageTypeSuffix:
    type: PageType
    map:
      form.json: 871
 类似资料:
  • 本文向大家介绍Nginx中404页面的配置及AJAX请求返回404页面的方法,包括了Nginx中404页面的配置及AJAX请求返回404页面的方法的使用技巧和注意事项,需要的朋友参考一下 404页面基础配置 404错误是WWW网站访问容易出现的错误。最常见的出错提示:404 NOT FOUND。404错误页的设置对网站SEO有很大的影响,而设置不当,比如直接转跳主页等,会被搜索引擎降权拔毛。404

  • 本文向大家介绍jquery+ajax请求且带返回值的代码,包括了jquery+ajax请求且带返回值的代码的使用技巧和注意事项,需要的朋友参考一下 现在比较流行使用jquery的ajax来实现一些无刷新请求效果,本章节提供一个非常简单的代码实例供大家参考之用,希望能够给需要的朋友带来一定的帮助,代码如下: async是asynchronous[异步]的缩写,它是一个bool值默认为true。当as

  • 问题内容: 我一直在从jquery收到针对Ajax请求的“ parsererror”,我尝试将POST更改为GET,以几种不同的方式(创建类等)返回数据,但是我似乎无法弄清楚问题出在哪里。 我的项目在MVC3中,我使用的是jQuery 1.5,我有一个Dropdown,并在onchange事件上触发了一个调用,以基于所选内容获取一些数据。 下拉列表:(这会从Viewbag的列表中加载“ Views

  • 问题内容: 我正在做一些简单的测试(为更大的项目做准备),以使用JQuery AJAX调用ASP.NET WebMethod。在我的示例中,我的WebMethod返回一个简单的字符串。但是,当我尝试使用JQuery调用它时,我得到的是返回的整个HTML页面内容,而不仅仅是我的字符串。我想念什么? 客户端 : 服务器端: 问题答案: 查看此链接。我用他的其他一些帖子成功地为WCF服务。请务必查看相关

  • 问题内容: 我知道可以将AJAX请求发送到页面。而且我还知道页面通过Web方法处理AJAX请求。 是否还可以将AJAX请求发送到页面?如果是这样,页面是否还通过Web方法处理AJAX请求?请注意,我想从页面返回JSON响应。这可能吗? 问题答案: 您可以在页面的代码后面定义Web方法,然后调用它们: 然后,在您的jQuery代码中调用Web方法: 这是一个很好的入门指南。

  • 问题内容: 我有一个函数,用关键字声明一个变量。然后,它将启动AJAX请求以设置变量的值,然后从函数中返回此变量。 但是,我的实现失败了,我也不知道为什么。 这是代码的简化版本; 问题答案: AJAX请求是异步的。您的sendRuest函数正在执行,正在发出AJAX请求,但它是异步发生的;因此,sendRuest的其余部分在AJAX请求(和onreadystatechange处理程序)执行之前就已