gpt4 book ai didi

javascript - 使用 AJAX 加载 GZIP JSON 文件

转载 作者:行者123 更新时间:2023-11-29 14:57:15 25 4
gpt4 key购买 nike

我使用以下算法压缩了 json 文件(来自:java gzip can't keep original file's extension name)

private static boolean compress(String inputFileName, String targetFileName){
boolean compressResult=true;
int BUFFER = 1024*4;
byte[] B_ARRAY = new byte[BUFFER];
FileInputStream fins=null;
FileOutputStream fout=null;
GZIPOutputStream zout=null;
try{
File srcFile=new File(inputFileName);
fins=new FileInputStream (srcFile);
File tatgetFile=new File(targetFileName);
fout = new FileOutputStream(tatgetFile);
zout = new GZIPOutputStream(fout);
int number = 0;
while((number = fins.read(B_ARRAY, 0, BUFFER)) != -1){
zout.write(B_ARRAY, 0, number);
}
}catch(Exception e){
e.printStackTrace();
compressResult=false;
}finally{
try {
zout.close();
fout.close();
fins.close();
} catch (IOException e) {
e.printStackTrace();
compressResult=false;
}
}
return compressResult;
}

我正在返回 JSON

response.setHeader("Content-Type", "application/json");
response.setHeader("Content-Encoding", "gzip");
response.setHeader("Vary", "Accept-Encoding");
response.setContentType("application/json");
response.setHeader("Content-Disposition","gzip");
response.sendRedirect(filePathurl);

request.getRequestDispatcher(filePathurl).forward(request, response);

尝试使用 AJAX 代码访问 JSON 对象,如下所示:

$.ajax({
type : 'GET',
url : url,
headers : {'Accept-Encoding' : 'gzip'},
dataType : 'text',

我看到的输出是二进制数据,而不是解压后的 JSON 字符串。关于如何使这项工作有任何建议吗?请注意,我使用的浏览器(IE、Chrome、FF)支持 gzip,因为我所有由 Apache gzip 压缩的静态内容都可以正确呈现。

最佳答案

通过使用:

response.sendRedirect(filePathurl);

您正在创建另一个请求/响应。您定义的 header 不再与实际发送的文件相关联。

无需发送重定向,您需要加载您的文件并在同一响应中流式传输它。

使用 Fiddler 或其他请求查看器来查看。

关于javascript - 使用 AJAX 加载 GZIP JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768047/

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