Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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 Rack::Request aftet use FormData函数中出错_Javascript_Jquery_Ruby On Rails_Rake_Form Data - Fatal编程技术网

Javascript Rack::Request aftet use FormData函数中出错

Javascript Rack::Request aftet use FormData函数中出错,javascript,jquery,ruby-on-rails,rake,form-data,Javascript,Jquery,Ruby On Rails,Rake,Form Data,我有Rails 3.2.13上的webapp。如果我提出ajax请求: $.ajax( { url: '/my_action', type: 'POST', data: new FormData( $('#my-form-id') ), cache: false, processData: false, contentType: false } ); return false; 我有以下错误: TypeError - no

我有Rails 3.2.13上的webapp。如果我提出ajax请求:

    $.ajax( {
    url: '/my_action',
    type: 'POST',
    data: new FormData( $('#my-form-id') ),
    cache: false,
    processData: false,
    contentType: false
    } ); return false;
我有以下错误:

    TypeError - no implicit conversion of nil into Hash:
    rack (1.4.5) lib/rack/request.rb:221:in `params'
    rack-openid (1.3.1) lib/rack/openid.rb:94:in `call'
原因是将jQuery对象发送到FormData而不是HTML元素中。它发送了空POST参数,Rack::Request无法处理它


我的问题:是错误、漏洞还是RoR的特征?在jQuery中是否有FormData的替代方案?

很可能是发送了格式错误的参数。FormData不一定是罪魁祸首,表单本身可能不可用。你试过手动提交吗?手动提交可以。在表单上,我只有一个文件字段。啊,一个文件字段!问题是,没有一种简单/通用的方法可以通过ajax发送多部分表单。请看一看哪些尝试解决此问题。您可以在这里更详细地了解这个问题:无论我设置了哪种字段类型。文本字段也失败了。对于此类请求,self.POST==nil进入Rack::request中的params函数。如果我写data:new-FormData$'my-form-id'[0]都可以很好地工作,尤其是对于file field.Hmm,这很有趣。如果我提出任何关于你的问题的建议,我会回复你的。