gpt4 book ai didi

javascript - 有效负载(空内容类型)禁止错误 |在 ember 中从服务器下载 pdf 文件时

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

目标:想要通过生成以下 URL 从服务器下载 PDF 文件: http://localhost:4200/bookStore/secured/rest/books/14119

当以下行在 book.js 的路由中执行时,就会生成 URL。

return this.store.findRecord('book', bookId);

但是我收到 403 禁止错误。错误详细信息:

Error: Ember Data Request GET /bookStore/secured/rest/books/14119 returned a 403
Payload (Empty Content-Type)
Forbidden
at new AdapterError (-private.js:3170)
at Class.handleResponse (rest.js:594)
at ajaxError (rest.js:956)
at Class.hash.error (rest.js:623)
at fire (jquery.js:3317)
at Object.fireWith [as rejectWith] (jquery.js:3447)
at done (jquery.js:9274)
at XMLHttpRequest.<anonymous> (jquery.js:9514)

我需要将内容类型设置为“application/pdf”吗?如果是,请建议如何设置。

下面是JS代码:

路线\book.js

actions: {
pdfClick(bookId) {
return this.store.findRecord('book', bookId);
}
}

模板\book.hbs

<button {{action "pdfClick" book.bookId}}>PDF</button>

在服务器端,接收并响应请求的代码如下:

@GET
@Path("/{bookId}")
@Produces("application/pdf")
public Response bookExport(@PathParam("bookId") long bookId) {
//Code
}

根据服务器端代码,我们从服务器获取PDF文件。使用 PostMan 已成功测试。

最佳答案

您似乎正在尝试使用 Ember Data 下载 PDF 文件。不过,Ember Data 主要用于处理 JSON 数据,因此在这种情况下这可能不是最合适的。您仍然可以继续使用 Ember Data 进行其他操作,但对于下载 PDF,我建议仅使用它来生成正确的 URL。

您应该能够生成大致如下所示的 URL:

let url = this.store.adapterFor('book').urlForFindRecord(bookId, 'book');

或者只是:

let url = `http://localhost:4200/bookStore/secured/rest/books/${bookId}`;

如果您根本不想为此使用 Ember 数据。

最后下载您可以使用的 PDF:

document.location.assign(url);

或将您的按钮转换为链接:

<a href={{url}}>Download PDF</a>

关于javascript - 有效负载(空内容类型)禁止错误 |在 ember 中从服务器下载 pdf 文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514421/

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