流式传输文档数据后链接未打开
Link not opening after streaming data of the document down
我想我在JavaScript方面缺少一些代码。我正在下载每个请求的文件。当用户单击链接时,我将获取文档数据并将其流式传输。我在Fiddler上看到数据正在下来,但是。txt文档链接没有打开。
[HttpGet]
public HttpResponseMessage GetDataFiles(Int64 Id)
{
var results = context.PT_MVC_RequestFile.Where(x => x.RowId == Id).FirstOrDefault();
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
try
{
if (results != null)
{
response.Headers.AcceptRanges.Add("bytes");
response.StatusCode = HttpStatusCode.OK;
response.Content = new ByteArrayContent(results.Data);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = results.FileName;
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentLength = results.Data.Length;
}
}
catch (EntityException ex)
{
throw new EntityException("GetFiles Failed" + ex.Message);
}
return response;
}
首先,我下载了该请求的所有文档,如果用户单击该文件,我调用下载流操作。
$.ajax({
url: url,
type: 'GET',
// data: JSON.stringify(model, null),
contentType: "application/json",
success: function (data) {
if (data != "") {
$("#fileLength").val(data.length);
// alert(data.length);
$.each(data, function (i, item) {
var newDiv = $(document.createElement('div')).attr("id", 'file' + i);
newDiv.html("<input id='"cb" + i + "'" type='"checkbox'"> <a href='"#'" onclick='"GetData('" + item.RowId + "','" + item.mineType + "')'" >" + item.FileName + "</a>");
newDiv.appendTo("#fileRows");
});
} else {
}
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
我想我在成功之后错过了一些东西。它下载了数据,但是链接没有打开。可能是内容类型没有设置,或者它认为这是JSON数据?请帮忙出主意。
链接:
function GetData(rowId,mineType) {
// alert(mineType);
var url = "api/MyItemsApi/GetDataFiles/" + rowId;
$.ajax({
url: url,
type: 'GET',
//data: JSON.stringify(model, null),
contentType: "application/json",
success: function (data) {
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
}
无法通过Ajax请求轻松下载文件。我建议将数据从表单发送到空白页面,而不是Ajax(如果需要,您可以填充该表单并通过jQuery发送)。如果你感兴趣,我可以指导你,请告诉我。
如果你仍然想从Ajax下载,我建议你参考这篇文章。
相关文章:
- 添加数据属性及其值以使用纯javascript进行链接
- 向Graph中的所有d3.js数据点添加唯一链接
- 如何获取网站所有页面的链接以进行数据抓取
- 使用 IP 地址和超链接对数据表进行排序
- 如何在数据表的命令链接中使用 ajax 禁用表单字段
- 从chrome扩展创建一个包含POST数据的链接
- 如何分配数据切换=“;下拉菜单”;用于wordpress中的父链接
- 信息没有'点击AngularJS中的链接后不会刷新.I'我得到了{{value}},但没有得到数据
- 想要使用链接将数据发送到另一个视图
- 显示表格数据的更多链接
- 主干网+jquery:如何从与主干网的链接中检索数据's路由器
- 单击指向外部网站的链接后,通过MySQL保存数据
- 从页面上点击的链接中删除数据,然后移动到下一页&在CasperJS中重复
- 将.js文件中的数据包含到链接中
- JS:数据href中指定的链接在转盘中不起作用
- 将表单元格数据转换为单独.js文件中的内部链接
- PHP 附加链接数据
- 有没有办法重新加载涡轮链接数据-涡轮链接-永久
- 如何使用javascript的客户端对象模型检索sharepoint列表中的超链接数据类型列值
- 在链接数据对象中重复