我试图学习在Rails中使用AJAX。
这是我的客户端coffeescript代码:
$(document).ready ->
$("#url").blur ->
$.get("/test_url?url=" + $(this).val(), (data) ->
alert("Response code: " + data)
).fail( () ->
alert("Why am I failing?")
)
这是我的服务器端Ruby代码:
def url_response
url = URI.parse(params[:url])
Net::HTTP.get_response(url).code unless url.port.nil?
end
正在调用Ruby代码并正确返回HTTP响应代码,但我无法对数据执行任何操作,因为客户端脚本表示调用失败。据我所知,它并没有失败。正在调用url_response
,它正在返回一个值,那么究竟什么在这里失败?
答案 0 :(得分:0)
问题是我删除了呈现响应的行。我之前有过,但多亏了Frederick Cheung的提示,检查URL是否直接在浏览器中工作,我意识到它不再像以前那样在浏览器中工作,这就是我没有做到的原因。想再检查一下!
下面的代码让一切恢复正常。
def url_response
url = URI.parse(params[:url])
render :text => Net::HTTP.get_response(url).code unless url.port.nil?
end