window.location=MVC File()和$.ajax'之间的差异;s成功(window.locat
Differences between window.location = MVC File() and $.ajax's success( window.location = result )?
在我看来,这两位代码应该工作相同:
window.location = "../PlanView/ExportAsPDF";
$.ajax({
url: '../PlanView/ExportAsPDF',
data: { },
success: function (stream) { window.location = stream; }
});
前一段代码触发用户下载.PDF文件。第二个没有——我有一个奇怪的请求挂在浏览器的网络流量中。
有人能强调一下我应该意识到的关键差异吗?
更深入的解释:
我需要向服务器传递比URL中允许的更多的数据。因此,我需要POST到服务器,而不是GET。我不能使用以前的代码,因为我不能把那么多信息推到URL中——服务器将以414响应。
我想用后者来复制前一部分代码的功能。
public ActionResult ExportAsPDF(string dataURL)
{
Document document = new Document(PageSize.A4.Rotate(), 15, 15, 30, 65);
byte[] buffer = new byte[0];
using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter.GetInstance(document, memoryStream);
document.Open();
document.Add(new Paragraph("First PDF file"));
document.Close();
buffer = memoryStream.ToArray();
}
return File(buffer, "application/pdf", "PlanView.pdf");
}
第一个与第二个不同,因为第一个告诉浏览器显示文件,而第二个不显示。仅仅因为"流"不会是"../PlanView/ExportAsPDF".
此外,如果您只想将浏览器指向该文件,则不需要此ajax请求。还有后者,如果它在所有的工作,会给你什么二进制内容的PDF文件?坦率地说,我不知道如何处理:)
如果您希望得到JSON(当然不会得到),那么您的ajax属性中也应该有"dataType"而不是"dataType"。
更新:
即使这样也应该有效:
$.ajax({
url: '../PlanView/ExportAsPDF',
method : 'POST',
data: { },
dataType: 'json',
success: function (stream) { window.location = '../PlanView/ExportAsPDF'; }
});
相关文章:
- angularjs 中 $window.location.reload() 和 $route.reload() 之间的区
- document.addEventListener和window.addEvent监听器之间的区别
- 单击.之间具有特定名称的链接的JS.<>标签.我应该使用 window.find(string).click()、
- ngStorage和$window.localStorage之间的区别
- 在window.onload之前/之后创建对象之间的区别
- 如何在“窗口”之间进行选择.URL.createObjectURL()' 和 'window.webkitURL.cre
- (function(window){}) 和 (function(){}) 之间的区别
- Javascript 中 form.submit 和 window.open() 之间的区别
- jquery 中的 window.resize() 和 window.on('resize') 之间的区
- 全局作用域中的var someVariable和JavaScript中的window[“someVariable”]之间
- window.confirm() 和 just confirm() 之间的区别
- 使用 window.onerror 和 try-catch 块处理错误之间的差异
- window.onload=function_name和window.onlad=function_name()之间的区
- window.location和location.href之间的差异
- 在If条件中使用window.location在CSS文件之间切换
- 在调用 window.location.asassigned 后,网页渲染在 chrome/firefox 之间的行为不
- window.location=MVC File()和$.ajax'之间的差异;s成功(window.locat
- 什么's执行回退时window.jQuery和if(typeof jQuery==“undefined”)之间的
- window.localStorage.setItem和localStorage.setItem之间是否有任何区别?
- Javascript Hoisting:调用x和window.x之间的区别