200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > asp.net core MVC程序通过AJAX上传文件报“400 Bad Request”

asp.net core MVC程序通过AJAX上传文件报“400 Bad Request”

时间:2019-12-31 12:44:18

相关推荐

asp.net core MVC程序通过AJAX上传文件报“400 Bad Request”

微软 core上传文件示例中的流式文件上传示例采用AJAX调用控制器函数上传,但是将此部分代码剥离出来运行时,会报下图所示的“400 Bad Request”的错误,一开始还以为是代码剥的有问题,后面直接运行微软示例程序,在流式文件上传页面测试时也是报相同的错误。

在火狐浏览器中用开发者工具调试,看到下面的strict-origin-when-cross-origin策略。以为是跨域访问引发的错误。于是按之前《Canvas操作图片像素》和《jQuery调用WebAPI报错“已拦截跨源请求:同源策略禁止读取位于…的远程资源”’》文章中的解决方法分别尝试了配置火狐浏览器的策略及在代码中增加了策略的设置,但是都没有用,上传文件还是报相同的错误。

builder.Services.AddCors(options =>{options.AddPolicy("any", builder =>{builder.WithMethods("GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS")//.AllowCredentials()//指定处理cookie.AllowAnyOrigin(); //允许任何来源的主机访问});});......app.UseAuthorization();app.UseCors("any");......

百度搜索 core和400 Bad Request,找到了参考文献1,其中介绍了返回400的原因有可能是“代码使用了ponentModel.DataAnnotations中的特性”,于是查看控制器中上传文件函数是否使用了什么特性,微软示例中在文件上传函数上添加了 [HttpPost]、[DisableFormValueModelBinding]、[ValidateAntiForgeryToken],后面两个的用法可以百度,本测试项目中就直接去掉了,仅保留了 [HttpPost]。再运行程序,即可顺利上传文件,如下图所示:

参考文献:

[1]/jiuzaizuotian/article/details/116839401

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。