今天使用Asp.Net MVC开发的时候碰到一个返回Json对象成功进入Ajax的Success方法却又提示下载Json文件的问题。仔细查看了Jquery的Ajax调用代码和Controller封装数据返回的代码,并且反反复复到网上看了别人的文章,总结下来的原因有:
1、Ajax调用的时候没有将DataType设置为Json
2、返回的时候建议将ContentType设置为“text/html"
但是反复尝试都问题依旧存在。
后台突然发现下载文件的时候会跳到Action的新地址,但是我Js中是通过异步请求访问后台的,浏览器中的地址不应该变化,这个时候才开始将焦点转移到前端的HTML代码。
最后发现是那个按钮中HTML问题,我将input的type设置为submit,导致他点击的时候就自动变成了提交,所以会影响浏览器的地址栏,从而在返回JSON对象后还进行Json文件下载。遂将type改成button,问题解决。