简单的Sinatra Ajax不工作

时间:2013-11-08 22:46:46

标签: jquery ruby ajax json sinatra

我正在尝试从计算机上的静态文件到简单的sinatra服务进行AJAX调用。 ajax调用返回时出错,没有详细信息。服务器也没有记录任何错误。另一个奇怪的症状是请求标头中的Origin为null。

我发现你不能在没有多少额外努力的情况下进行跨域ajax调用。您可以在sinatra响应中设置 Access-Control-Allow-Origin 标头,以使用以下代码段将您的服务公开给外部域:

get '/hi' do
  response['Access-Control-Allow-Origin'] = '*'
  content_type 'text/plain'
  "Hello World"
end

还可以设置另一个标头,以允许除GET之外的其他HTTP方法,访问控制请求方法。您可以通过搜索CORS:Cross Origin Resource Sharing和前面提到的标题来找到更多信息。

哦,如果您想在Rails中执行此操作,您可以在控制器中执行以下操作:

after_filter :set_access_control_headers

def set_access_control_headers
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Request-Method'] = '*'
end

0 个答案:

没有答案