记一次eggjs+axios传输multipart的纠错历程

总所周知,egg的csrf战略让post每次都要发送token码考证,为了轻易,我在axios的interceptor里作了前置阻拦。

效果不幸今后发作!
最最先没有看官方文档,认为csrf应当加在data内里,又没有考虑到要上传multipart/form花样的文档,所以直接 config.data = Assign({…data},{_csrf})
效果发送的type是application/type。这很正常,浏览源码知data为Obj时会自动增加application的头。

因而强行设置multipart/part的header,致使后端涌现boundary not found
boundary作为要求的一部分,应由浏览器检察并准确设置,这点有后端履历的都很清晰,强行加boundary一定没用。不加又以application上传了。

没办法,只要覆写transferRequest,然后变动config.data为config.data.append(_csrf,xxx),至此浏览器胜利准确设置multipart头

PS:主动设置multipart头完整无效,axios源码里探测到multipart头就会删除它,网上不懂的人不要胡说行不行,中国论坛就是这类渣滓民风,没试过没看过就最先流传。。。。。。
PS2:没搞懂egg 安全战略默许制止options要求,我怎样跨域呢????????????????????又回到上古世纪的jsonp或许只能proxy了???????

    原文作者:Liuyl
    原文地址: https://segmentfault.com/a/1190000019322913
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞