Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用大参数执行ajax请求?_Javascript_Ruby On Rails_Webrick - Fatal编程技术网

Javascript 如何使用大参数执行ajax请求?

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

当我试图用一个大的json参数从javascript调用rails控制器函数时,出现了“RequestURI太大”错误。我正在使用Webrick http服务器。有没有办法在不更改服务器的情况下解决此问题

我有点像:

$.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