使用来自 Rails API 应用程序的脚本响应,中间件有限(config.api_only = true)?
Respond with script from a Rails API app with limited middleware (config.api_only = true)?
我有一个 Rails 5 的应用程序构建为 api app。所以默认情况下它只响应 json.
但是对于一个特定的请求,我需要应用程序使用脚本进行响应。
在常规 Rails 应用程序中,我会简单地将我的脚本放在 js.erb
文件中。这在这里行不通。
如果我的控制器动作是这样的:
def respond_with_js
end
我这样请求应用程序:
$.getScript("https://myapp.example.com/respond_with_js");
它响应 204 No Content
:
Started GET "/respond_with_js" for 127.0.0.1 at 2018-06-27 20:28:44 +0200
Processing by ApplicationController#respond_with_js as */*
Completed 204 No Content in 0ms
我该如何解决这个问题?
如果 rails 服务器只有 api 版本,则不能作为脚本请求。
Rails 默认响应 json.
def respond_with_json
render json: {message: "works"}, status: :ok
end
要请求它,您需要请求为json dataType:
$.ajax({
url: "https://myapp.example.com/respond_with_json",
method: "GET",
dataType: "json",
success: function(res){
console.log(res.message)
}
})
我有一个 Rails 5 的应用程序构建为 api app。所以默认情况下它只响应 json.
但是对于一个特定的请求,我需要应用程序使用脚本进行响应。
在常规 Rails 应用程序中,我会简单地将我的脚本放在 js.erb
文件中。这在这里行不通。
如果我的控制器动作是这样的:
def respond_with_js
end
我这样请求应用程序:
$.getScript("https://myapp.example.com/respond_with_js");
它响应 204 No Content
:
Started GET "/respond_with_js" for 127.0.0.1 at 2018-06-27 20:28:44 +0200
Processing by ApplicationController#respond_with_js as */*
Completed 204 No Content in 0ms
我该如何解决这个问题?
如果 rails 服务器只有 api 版本,则不能作为脚本请求。
Rails 默认响应 json.
def respond_with_json
render json: {message: "works"}, status: :ok
end
要请求它,您需要请求为json dataType:
$.ajax({
url: "https://myapp.example.com/respond_with_json",
method: "GET",
dataType: "json",
success: function(res){
console.log(res.message)
}
})