Javascript 来自Rails的嵌入式可执行JS
如何为其他站点制作嵌入式可执行JS 我有一个Rails应用程序3000端口,其中: routes.rb embed_widget_controller.rb 我正在插入代码以连接另一个站点3001端口上的JS:Javascript 来自Rails的嵌入式可执行JS,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,如何为其他站点制作嵌入式可执行JS 我有一个Rails应用程序3000端口,其中: routes.rb embed_widget_controller.rb 我正在插入代码以连接另一个站点3001端口上的JS: <div class='embed'> <script src='http://localhost:3000/embed/exampletagname' type='text/javascript'></script> </div>
<div class='embed'>
<script src='http://localhost:3000/embed/exampletagname' type='text/javascript'></script>
</div>
但什么也没发生
如何将输出输出到另一个站点的控制台?您的代码提供内容类型text/html,但对于脚本,它应该是text/javascript 获取“/embed/:tag_name”到:“embed_widgettag_name”,默认值:{format::js} 并将视图重命名为tag_name.js.erb:
如前所述嵌入,或通过http://localhost:3000/embed/exampletagname.js我做了你写的一切。但是仍然没有发生任何事情:在tag_name.js.erb中,我只留下了控制台。log'Hello from embedded js'@RomanOks通过直接请求curl-v检查它是否正确呈现http://localhost:3000/embed/exampletagname.js,还要检查其他站点是否通过CSPHTTP/1.1 200 OK禁用脚本,内容类型:text/javascript;charset=utf8,X-Content-Type-Options:nosniff,访问控制允许源代码:*,
class EmbedWidgetController < ApplicationController
layout false, only: [:tag_name]
protect_from_forgery except: [:tag_name]
before_action :set_access_headers, only: [:tag_name]
def tag_name
@tag_name = params[:tag_name]
end
private
def set_access_headers
headers['Content-Type'] = 'text/javascript; charset=utf8'
headers['Access-Control-Allow-Origin'] = '*'
end
end
:plain
var tag = "#{@tag_name}"
console.log('Hello from embedded JS. Tag name =', tag)
<div class='embed'>
<script src='http://localhost:3000/embed/exampletagname' type='text/javascript'></script>
</div>
var tag = "<%= @tag_name %>";
console.log('Hello from embedded JS. Tag name =', tag)