繁体   English   中英

使用multipart / form-data Express / KrakenJS时发生内部服务器错误

[英]Interal server error when using multipart/form-data Express/KrakenJS

使用multipart / form-data进行发布请求时遇到问题。 发出的任何发布请求仅返回错误:禁止。 这是控制台输出

Error:Forbidden
127.0.0.1 - - [Sat, 12 Apr 2014 20:08:33 GMT] "POST /addComic HTTP/1.1" 500 666     "http://localhost:8000/admin" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,                     like Gecko) Chrome/34.0.1847.116 Safari/537.36"

在我的index.js文件中,我包含了我需要的所有中间件

server.use(express.urlencoded());
server.use(express.json());
server.use(express.multipart());

在我的控制器中,我只是将文件详细信息打印到控制台。

app.post('/addComic', auth.isAdmin, function(req, res) {
    console.log(req.files.comicFile);
});

这是表格

<form action="/addComic" method="POST" enctype="multipart/form-data" class="form-horizontal">
    <input type="hidden" id="_csrf" name="_csrf" value="{_csrf}"/>
    <div class="form-group">    
         <input type="file" class="form-control"  id="comicFile" name="comicFile">
    </div>
    <input type="submit" class="btn btn-success" value="Add comic">
 </form>

我很困惑为什么会收到此错误。 任何帮助是极大的赞赏

问题不完全相同,但这可能会有所帮助。

我在Kraken.js中遇到类似的问题。 text/plain表单工作正常,但multipart/form-data无效。 我得到的错误是CSRF token mismatch因此听起来像是类似的(过去我遇到_csrf问题时,我收到了Error: Forbidden消息)。 我注意到(通过在lusca代码中放置一个断点),即使我看到它是从客户端发布的, req.body对象还是空的。

我通过恢复到已安装的node_modules的旧版本来解决此问题(在新的工作目录上进行npm install后,我开始遇到此问题,因此获得了较新版本的依赖项。我怀疑问题出在lusca软件包中。 。当我恢复为“〜0.1.1”(在kraken-jspackage.json定义)时,它再次开始工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM