首页 > 解决方案 > Ajax 响应成功,但页面未更新部分包含响应

问题描述

我的 Rails 应用程序中的这个股票搜索工具正在工作,然后发生了一些事情(我想我做了什么,不确定是什么),现在它不工作了。ajax 调用成功,我什至可以在 Chrome 开发工具中看到完全格式化的响应和所有内容。这个 HTML 是一个局部的,它应该在调用包含 ajax 的操作之后填充页面。

结果部分

<% if @stock %>
    <div class="bg-grey-lightest mx-auto py-6 shadow shadow-lg w-1/2">
      <p class="flex justify-between px-16 py-3 normal-font"><strong>Symbol:</strong> <%= @stock.company_name%></p>
      <p class="flex justify-between px-16 py-3 normal-font"><strong>Name:</strong> <%= @stock.symbol%></p>
      <p class="flex justify-between px-16 py-3 normal-font"><strong>Price:</strong> <%= @stock.latest_price%>&nbsp;</p>
<% end %>

主要股票查询页面

      <%= form_tag search_stocks_path, remote: true, method: :get do %>
      <div id="stock-lookup-form">
        <div>
          <div class="w-96 sm:w-full mr-1 sm:mr-0 sm:mb-1 z-20">
            <%= text_field_tag :stock, params[:stock], placeholder: "Stock ticker symbol", autofocus: false,
                  class: "bg-grey-lighter appearance-none border-2 border-yellow-offset hover:border-grey-dark rounded-sm py-4 px-6 sm:w-1/2 md:1/4 lg:w-1/4 text-black text-center" %>
          </div>
          <div>
            <%= button_tag(type: :submit, class: "bg-white block border border-red-darker hover:bg-red-darkest burgandy hover:text-red-lightest mx-auto my-4 no-underline normal-font py-3 rounded shadow-lg w-48") do %>
            <i class="fa fa-search"></i> Search Stock Prices
            <% end %>
          </div>
          <% end %>
          <div id="results">
            <%= render 'layouts/result' %>
          </div>
        </div>
      </div>

<script>
$(document).ready(function(){
  $('#stock-lookup-form').on('ajax:complete', function(event, data, status){
    $('#results').html(data.responseText);
  });
}); 
</script>

导轨动作

class StocksController < ApplicationController

  def search
    if params[:stock].blank?
      flash.now[:danger] = "You have entered an empty search string"
    else
      @stock = Stock.new_from_lookup(params[:stock])
      flash.now[:danger] = "You have entered an incorrect symbol" unless @stock
    end
    render partial: 'layouts/result'
  end
end

就像我说的,请求是成功的,我在控制台中没有错误,并且响应看起来和我想要的完全一样。部分 div 仍然是空的,它没有更新。

伊姆古尔 伊姆古尔

标签: jqueryruby-on-railsrubyajax

解决方案


推荐阅读