我在C#web api中有以下代码
var deferred = this.$q.defer();
this.$http({
method: 'GET',
url: someURL,
responseType: 'arraybuffer'
}).then(function (response: any) {
var blob = new Blob([response.data], { type: "application/octet-stream" });
var link = document.createElement('a');
var url = URL.createObjectURL(blob);
link.setAttribute('href', url);
link.setAttribute("download", "demo.doc");
link.click();
deferred.resolve();
});
return deferred.promise;
并在客户端跟进
{content-type: "application/octet-stream", cache-control: "private"}
但是当我在客户端javascript上添加了对response.headers()的监视时,它只会向我显示
class NewUserForm(Form):
username = TextField('Username', [validators.Required()])
def __init__(self, *args, **kwargs):
Form.__init__(self, *args, **kwargs)
self.user = None
def validate(self):
rv = Form.validate(self)
if not rv:
return False
user = User.query.filter_by(
username=self.username.data).first()
if user is not None:
self.username.errors.append(' username taken ')
return False
self.user = user
return True
有人可以帮我找到fileName标题的位置吗?
答案 0 :(得分:0)
我注意到的第一件事就是你的'添加'应该是'添加',我想这可能是你最后的错字但是想指出。
result.Content.Headers.Add("fileName", Path.GetFileName(tempFileName ));
我可以看到您使用angular的$ http服务来进行服务器ajax调用,您可以使用响应对象的'headers'属性,如下所示。
response.headers('fileName')
如果您正在使用jQuery,那么您可以简单地使用以下内容:jqXHR是jQuery的jqXHR对象,它是XMLHTTPRequest对象的超集。
jqXHR.getResponseHeader('filename')