gpt4 book ai didi

javascript - Rails 4 在尝试使用 AJAX 时将 JS 加载为纯文本

转载 作者:行者123 更新时间:2023-11-28 00:05:33 25 4
gpt4 key购买 nike

我正在尝试创建一个包含两列的简单页面。在左栏中,用户可以填写表格。在表单提交上,我希望刷新右列(通过 AJAX)并使用在 Controller 中创建的 @url 字符串填充 div。现在,表单提交根本不会触发我的 .js 页面上的代码,而是从页面重定向并在浏览器中以纯文本形式加载我的 .js。这应该很简单——我做错了什么?

在配置/路由中:

    root 'home#home'
post '/pixify', to: 'home#pixify', as: "pixify", format: 'js'

在 HomeController 中:

    class HomeController < ApplicationController
respond_to :html, :js
skip_before_action :verify_authenticity_token

def home
end

def pixify
@url = "http://example-url.com"
respond_to do |format|
format.js { render :layout => false }
end
end
end

在views/home/home.html.haml中:

   %div#container
%div.left-column
= form_tag pixify_path, :remote => true do
%fieldset
%ul
%li
%label{:for => "url-id"} URL ID:
%input{:type => "text", :name => "url-id"}

%input{:type => "submit", :value => "Generate url", :class => "button"}

%div.right-column
%div#generated-url

在views/home/pixify.js.erb中:

    console.log("This is working");   // but it isn't
$('#generated-url').html('http://www.justanexample.com');

最佳答案

如果您的 application.js 文件中没有包含 jquery_ujs 库,js.erb 文件将呈现为文本:

//= require jquery
//= require jquery_ujs

我敢打赌这就是“默认”文件和“应用程序”文件之间的区别。

您的 gemfile 中需要以下 gem:

gem 'jquery-rails'
gem 'jquery-ui-rails'

关于javascript - Rails 4 在尝试使用 AJAX 时将 JS 加载为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com