当我尝试将 XML 文件传输到服务器时出现此错误。
在我的场景中,网页使用 javascript 处理 XML 文件,然后将 XML 处理后的文件上传到 PHP 服务器。
文件容量为400K。
php.ini
post_max_size = 8M
upload_max_filesize = 2M
memory_limit = 128M
客户端初始请求:
$.ajax({
type: "GET",
url: "/dirname/filename.xml",
dataType: "xml",
async: false,
success: function(data){
xmlCID = data;
},
error: function(jqXHR, textStatus, errorThrown){
console.log(jqXHR.responseText, textStatus, errorThrown);
alert(textStatus);
}
});
客户端上传请求
$.ajax({
url: "/dirname/filename.xml",
dataType: "xml",
method: "PUT",
processData: false,
data: xmlCID,
success: function(data){
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText, textStatus, errorThrown);
}
});
不幸的是,服务器响应是:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>413 - Request Entity Too Large</title>
</head>
<body>
<h1>413 - Request Entity Too Large</h1>
</body>
</html>
最佳答案
正如 hakre 所指出的,除了 PHP 中的设置之外,当请求负载的大小超出网络服务器配置允许的范围时,您通常会收到 413 错误。这些指令因服务器而异,但这里有一些常见的指令(如果您使用的是托管平台,您可能需要联系主机的支持团队):
Nginx:查看 client_max_body_size nginx.conf 指令( http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size )
Apache:指令 LimitRequestBody可用于 httpd.conf或在目录级别 .htaccess文件 ( http://httpd.apache.org/docs/2.4/mod/core.html#limitrequestbody )
IIS:查看maxAllowedContentLength (requestFiltering 的一部分 > requestLimits ),或 UploadReadAheadSize在 IIS6 中(IIS 解决方案非常依赖于版本,因此我建议进行一些研究)。
如果您通过 HTTP 和 HTTPS 处理请求,请确保相关配置适用于两者。
虽然不太常见(在公司网络中更常见),但这也可能与请求正在传递的其他代理或安全设备有关,因为它们中的每一个都可能有不同的限制来影响请求的处理。
如有疑问,请检查日志:首先,确保请求到达您的服务器(在访问日志中),如果是,请检查响应代码,然后还要检查错误日志。
希望对您有所帮助!
关于javascript - PHP 413(请求实体太大),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428490/
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我是Ruby的新手。我试过查看在线文档,但没有找到任何有效的方法。我想在以下HTTP请求botget_response()和get()中包含一个用户代理。有人可以指出我正确的方向吗?#PreliminarycheckthatProggitisupcheck=Net::HTTP.get_response(URI.parse(proggit_url))ifcheck.code!="200"puts"ErrorcontactingProggit"returnend#Attempttogetthejsonresponse=Net::HTTP.get(URI.parse(proggit_url)
在我的路线文件中我有:match'graphs/(:id(/:action))'=>'graphs#(:action)'如果是GET请求(工作)或POST请求(不工作),我想匹配它我知道我可以使用以下方法在资源中声明POST请求:post'/'=>:show,:on=>:member但是我怎样才能为比赛做到这一点呢?谢谢。 最佳答案 如果你同时想要POST和GETmatch'graphs/(:id(/:action))'=>'graphs#(:action)',:via=>[:get,:post]编辑默认值可以设置如下match'g
我收到“ArgumentError:数组大小太大”消息,代码如下:MAX_NUMBER=600_000_000my_array=Array.new(MAX_NUMBER)问题。Array.new函数在Ruby中的最大值是多少? 最佳答案 具有5亿个元素的数组的大小为2GiBytes,这取决于您使用的特定操作系统,通常是一个进程可以处理的最大值。换句话说:您的数组大于您的地址空间。因此,解决方案很明显:要么缩小数组(例如,将其分成block),要么扩大地址空间(在Linux中,您可以修补内核以获得3、3.5甚至4GiByte地址空间,
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan
我试图像这样在我的测试用例中执行获取:request.env['CONTENT_TYPE']='application/json'get:index,:application_name=>"Heka"虽然,它失败了:ActionView::MissingTemplate:Missingtemplatealarm_events/indexwith{:handlers=>[:builder,:haml,:erb,:rjs,:rhtml,:rxml],:locale=>[:en,:en],:formats=>[:html]尽管在我的Controller中我有:respond_to:html,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
如果使用rspec请求花费的时间太长,我该如何测试行为?我正在考虑使用线程来模拟这个:describe"Test"doit"shouldtimeoutiftherequesttakestoolong"dolambda{thread1=Thread.new{#net::httprequesttogoogle.com}thread2=Thread.new{sleep(xxseconds)}thread1.jointhread2.join}.shouldraise_errorendend我想确保在第一次发出请求后,另一个线程“启动”,在这种情况下只是休眠xx秒。然后我应该期望请求超时,因为执