Ajax 请求返回代码而不是呈现代码 html

Ajax request is returning code instead of rendered html

我正在 CraftCMS 中构建站点,但我认为我的问题更具体地针对 Ajax/Javascript 而不是 Craft。

我有一些复选框,单击时,我尝试使用 Ajax 将复选框值作为查询字符串传递到单独的页面,并将呈现的结果附加到当前页面。

我的 Ajax 看起来像这样:

$('#filters input').change(function() {
  var value = $(this).val();

  $.ajax("ajax.twig?search=" + value, {
    type: 'get',
    dataType: 'html',
    success : function(html) {
      $("#ajaxresults").html(html)
    },
    error: function() {
      alert("Error");
    }
  });
});

我尝试使用 Ajax 调用的页面如下所示。它接受一个查询字符串并使用它来执行查询和显示结果。

{% set searchTerm = craft.request.getParam('search') %}

{%  set galleries = craft.entries.section("gallery").colors(searchTerm) %}
{% if galleries|length %}

<div class="gallery">
  <ul>
    {% for gallery in galleries.all() %}
      <li>
        <img src="{{ gallery.image[0].url }}" alt="" />
        <h2>{{ gallery.title }}</h2>
      </li>
    {% endfor %}
   </ul>
 </div>

{% endif %}

如果我在浏览器中手动访问 ajax.twig?color=red,我会看到呈现的结果。但是,Ajax 请求返回的是上面显示的代码,而不是呈现的 HTML 结果。我试过使用 .load() 和 .get() 并得到了相同的结果。

有谁知道我做错了什么?提前致谢。

ajax 文件的路径错误。我把它当作:

$.ajax("templates/ajax?search=" + value, {

什么时候应该

$.ajax("ajax?search=" + value, {