request.format在XMLHttpRequest()到rails服务器上为null

时间:2011-11-10 00:16:26

标签: ruby ajax ruby-on-rails-3

我有一个rails应用程序响应url'/ copy /:collection /:email'的请求。在应用程序中,我发送的请求为XMLHttpRequest()

var req = new XMLHttpRequest();
req.onreadystatechange = function(){
    console.log(req);
}
req.open("GET", '/copy/' + collection + "/" + copyTo, true);
req.send();

服务器接收请求并执行正确的操作,但在完成时返回Completed 404 Not Acceptable in ...

我在日志中注意到它通常会说Processing by XController#copy as JS的位置,日志只显示为:Processing by XController#copy as。我已经进行了一些调试,并确定request.format为nil。有没有办法在发送我的请求时设置它?

1 个答案:

答案 0 :(得分:1)

最简单的方法是像这样添加URL的扩展名

req.open("GET", '/copy/' + collection + "/" + copyTo + ".js", true);

另一种方法是将http请求的Accept标头设置为text / javascript。我相信这样做会是这样的(我自己也没试过)

req.setRequestHeader("Accept", "text/javascript")
req.open("GET", '/copy/' + collection + "/" + copyTo, true);