gpt4 book ai didi

javascript - 如何使用 JQuery 从服务器获取二进制数据?

转载 作者:行者123 更新时间:2023-11-30 17:14:10 28 4
gpt4 key购买 nike

我正在尝试使用 Web API Controller 下载二进制数据,使用 JQuery.get() .

我试过的代码是:

$.get("../api/Download/Report?Id=" + selectedItem.Id);    

当我调试正在运行的应用程序时,它会转换为带有此 URL 的 HTTP GET:

http://localhost:12150/api/Download/Report?Id=2515

浏览器显示 200 作为结果,接收到二进制数据,但它没有打开它也没有提供下载文件。 如果我将 URL 复制并粘贴到地址栏中并按“Enter” ',它起作用了。

任何允许相对路径的建议或替代方案?

最佳答案

您不应该为这些事情使用 ajax。如果你想强制用户下载响应,那可能会变得困惑。打开一个新的标签/窗口;在大多数浏览器中,它无论如何都会自行关闭,用户甚至不会注意到它是打开的! :) 如果您知道加载的 URL,您可以简单地使用 target="_blank" 属性制作一个 anchor 标记。即:

<a href="http://localhost:12150/api/Download/Report?Id=<?=$reportID?>" target="_blank">Download report</a>

(好吧,你知道基本的 HTML,但你明白了)

如果你想/需要用 JS 来做,用一个简单的window.open():

window.open("../api/Download/Report?Id=" + selectedItem.Id,'_blank');

免责声明:我不知道该相对 URL 是否真的适用于 window.open()。如果它不只是摆弄首先通过 PHP 构建 URL:

$reportURL = $_SERVER['SERVER_NAME']."/api/Download/Report?Id=";

然后,在你的 JS 中,只是回显它:

window.open("<?=$reportURL?>" + selectedItem.Id,'_blank');

关于javascript - 如何使用 JQuery 从服务器获取二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428163/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com