Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自Rails的嵌入式可执行JS_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 来自Rails的嵌入式可执行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>

如何为其他站点制作嵌入式可执行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>
但什么也没发生


如何将输出输出到另一个站点的控制台?

您的代码提供内容类型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)