gpt4 book ai didi

php - 如何以下载方式向用户提供 Ajax POST 响应?

转载 作者:可可西里 更新时间:2023-11-01 00:18:12 24 4
gpt4 key购买 nike

我正在尝试在现有的充满帐户信息的页面中包含 vCard 导出功能。

丑陋的方法涉及 1,将表单提交到同一页面,处理它并重新呈现整个页面,或 2,针对页面上的 iframe 的 GET。我真的很想避免这两种情况,但我可能不得不使用 #2 来实现目标。

现在我有:

<input type="image" src="/intra/imgs/icons/vcard.png" onclick="$.post('/intra/vcard.php', { id: '992772', type: 'sponsor'});">

如果我在 Firebug 中观察 XHR 事件,我会看到请求返回正确的响应,充满 vCard 格式的数据。但是它不会提示用户将响应下载为文件,即使发送的卡片是:

header('Content-Type: text/x-vcard');
header("Content-Disposition: attachment; filename={$this->name_first}{$this->name_last}.vcf");

我是做错了什么,还是这不可能?

最佳答案

我对问题到底是什么感到困惑。为什么不做类似的事情:

<input type="image"
src="/intra/imgs/icons/vcard.png"
onclick="window.location='/intra/vcard.php?id=992772&type=sponsor';">

然后在 vcard.php 上返回适当的下载 header ?当浏览器获取这些内容时,它将停留在同一页面上并提示下载。您将不得不更改代码以将变量处理为 $_GET 而不是 $_POST 但无论如何您都应该使用 GET。

EDIT 正如评论中指出的那样,这样做更合适:

<a href="/intra/vcard.php?id=992772&type=sponsor"><img src="/intra/imgs/icons/vcard.png"></a>

届时,禁用 javascript 的用户可以访问它。

关于php - 如何以下载方式向用户提供 Ajax POST 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734353/

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