Javascript 如何使用大参数执行ajax请求?
当我试图用一个大的json参数从javascript调用rails控制器函数时,出现了“RequestURI太大”错误。我正在使用Webrick http服务器。有没有办法在不更改服务器的情况下解决此问题 我有点像:Javascript 如何使用大参数执行ajax请求?,javascript,ruby-on-rails,webrick,Javascript,Ruby On Rails,Webrick,当我试图用一个大的json参数从javascript调用rails控制器函数时,出现了“RequestURI太大”错误。我正在使用Webrick http服务器。有没有办法在不更改服务器的情况下解决此问题 我有点像: $.ajax({ url: 'application/get_list', data: { options : options_json, selected_option : selected_option_string}, success: functio
$.ajax({
url: 'application/get_list',
data: { options : options_json, selected_option : selected_option_string},
success: function(data) {
// Insert the data to a div (returned data is a select tag with options)
},
type: 'get'
});
最简单的修复方法是将其更改为
POST
请求,并设置处理该请求的操作,这样您就不会遇到此错误
如果需要将其作为GET
请求,可以使用以下内容将名为webrick.rb
的文件添加到config\initializers
目录中:
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
如果您不断收到错误,请不断增加数字10240
,直到它起作用
因为您的评论说它需要是一个GET
请求,所以您真的别无选择,只能设置MAX\u URI\u LENGTH
。从:
如果您需要很长的URI,请将其设置为荒谬的值,如9223372036854775807请发布所有相关代码,以便我们重新创建错误,从而更好地帮助您。您好@Regis,修改了帖子。我需要它成为get请求。另外,我不确定是否要更改MAX_URI_LENGTH的大小,因为我传递的数据可能非常大。
if @request_line.bytesize >= MAX_URI_LENGTH and @request_line[-1, 1] != LF
raise HTTPStatus::RequestURITooLarge
end