我在.NET MVC视图中具有以下代码,该代码转到一种操作方法,该方法又下载了一个文件:
lazy val root = (project in file(".")).
settings(
inThisBuild(List(
organization := "com.example",
scalaVersion := "2.12.6",
version := "0.1.0-SNAPSHOT"
)),
name := "shapeless-validation",
resolvers ++= Seq(
Resolver.sonatypeRepo("releases")
),
libraryDependencies ++= Seq(
"com.chuusai" %% "shapeless" % "2.3.3",
"org.scalatest" %% "scalatest" % "3.0.5" % "test",
"org.typelevel" %% "cats-core" % "1.1.0",
"org.typelevel" %% "kittens" % "1.1.0"
)
)
尽管这行得通,但我想知道JQuery中是否还有其他方法可以在其中报告可能遇到的任何错误。如果没有错误,它可以下载它,如果有错误,我会得到有关错误原因的信息。
我尝试使用.ajax get调用,但是它没有下载返回ajax调用的文件。
答案 0 :(得分:0)
没问题!我不确定您如何尝试使用.ajax,但是以下方法应该可以工作:
将此添加到视图HTML:
<button type="button" id="GetFile">Get File!</button>
然后,在您的脚本中:
$('#GetFile').on('click', function () {
$.ajax({
url: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/172905/test.pdf',
method: 'GET',
xhrFields: {
responseType: 'blob'
},
success: function (data) {
var a = document.createElement('a');
var url = window.URL.createObjectURL(data);
a.href = url;
a.download = 'myfile.pdf';
a.click();
window.URL.revokeObjectURL(url);
},
error: function(xhr, status, error) {
// Handle error
}
});
});
祝你好运!