Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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
在Rack应用程序中使用JavaScript响应_Javascript_Ruby_Web_Rack - Fatal编程技术网

在Rack应用程序中使用JavaScript响应

在Rack应用程序中使用JavaScript响应,javascript,ruby,web,rack,Javascript,Ruby,Web,Rack,我有一个Rack应用程序,需要用JavaScript响应。我正在尝试将内容类型设置为JavaScript,同时发送响应,但它不起作用,似乎我遗漏了一些东西 我发送的简单回复是: require 'rubygems' require 'rack' run Proc.new { |env| ['200', {'Content-Type' => 'application/javascript'},["alert('hi')"]]} Rack应用程序能否响应JavaScript内容类

我有一个Rack应用程序,需要用JavaScript响应。我正在尝试将内容类型设置为JavaScript,同时发送响应,但它不起作用,似乎我遗漏了一些东西

我发送的简单回复是:

require 'rubygems'   
require 'rack'  
run Proc.new { |env| ['200', {'Content-Type' => 'application/javascript'},["alert('hi')"]]} 

Rack应用程序能否响应JavaScript内容类型?或者可能是浏览器没有执行收到的JavaScript?

正如@matt在上面所说的,我想弄明白的是,你不能只给浏览器js,然后期望它运行。它必须由ajax回调执行。以jQuery为例:

$.ajax({
  url: "/path/to/your/js",
  dataType: "script"
});

属性告诉jQuery执行服务器返回的脚本。关键是你需要javascript来执行javascript,仅仅导航到URL是不行的。

你有没有看过Firebug或Chrome工具中的网络流量?你能展示一下中间件的其余部分吗?响应看起来很好。你能发布接收此响应的JS吗?@yoavmatchulsky这是一个简单的两行代码运行Proc.new{{env |['200',{'Content-Type'=>'application/javascript'},['alert('hi')”]],在浏览器中,它是以文本形式呈现,而不是执行javascript。我认为这是相关的:。您所做的设置内容类型是可以的,但浏览器不会执行像这样直接下载的js代码。