编辑:不知道为什么这被标记为重复,因为除了“使用这个第三方工具添加您可能不需要或不需要的额外接口”之外,原始版本甚至没有真正的答案。我使用ajax的原因是因为我需要发送一个id数组,除了ajax之外我不知道怎么做。我想出了我需要做什么,所以我真的不需要这篇文章的任何帮助,但这肯定不是一个重复的问题,即使它是,但原来没有真正的答案。
我一直在尝试获取一个链接,该链接将下载由我的导出脚本生成的文件。但是,我无法得到它来获取返回的文件。这是我一直在使用的JS函数......
function sendSelected(path) {
var ids;
ids = jQuery("#grid").jqGrid('getGridParam', 'selarrrow');
if (ids.length > 0) {
alert("");
$.ajax({
url: path,
data: { ids: ids },
type: "POST",
traditional: true,
});
} else {
alert("You have not selected any rows.");
return false;
}
}
然后这是HTML部分......
<input type="submit" name="command" value="Export" />
<script type="text/javascript">
jQuery("#export").click(function () { sendSelected("/Forms/Export"); });
</script>
这一切都运行正常,但我的导出器以document.Save(response, "file.pdf");
结尾,并且页面没有收回。如果我将其更改为document.Save(response, @"C:\some\location\to\save\at.pdf");
,则会在那里创建文件,因此我知道创建文件不是问题。另外,如果我只创建一个指向/ Forms / Export的标准表单,然后手动输入id,我可以正常下载该文件,但这对我的实现不起作用。
答案 0 :(得分:1)
$ .ajax不起作用,我最近尝试了类似的东西但最终得到了不同的解决方案。只需要一个带有隐藏输入的表单,然后在sendSelected中设置字段和操作,然后提交表单。
$("#hiddenField").val(data);
$("#yourForm").attr("action", path)
$("#yourForm").submit();