java - 如何让浏览器停止使用 <pre> 标签包装我的实体数据?

标签 java google-chrome safari jax-rs resteasy

我正在尝试编写一个自定义ExceptionMapper我想返回text/plain但是Response返回的或链中的某些内容坚持用 <pre></pre> 包装我的内容标签。

这是我尝试过的,我尝试没有设置 MediaType :

final Response.ResponseBuilder rb = Response.status(500);
rb.entity(e.getCause().getMessage());
return rb.build();

我还尝试设置MediaType.TEXT_PLAIN_TYPE还有:

final Response.ResponseBuilder rb = Response.status(500);
rb.type(MediaType.TEXT_PLAIN_TYPE);
rb.entity(e.getCause().getMessage());
return rb.build();

在这两种情况下,我都会收到用 HTML 封装的异常消息:

<html>
   <head></head>
   <body>
     <pre style="word-wrap: break-word; white-space: pre-wrap;">
          com.google.appengine.api.oauth.InvalidOAuthParametersException:
     </pre>
   </body>
   <style type="text/css"></style>  
</html>  

我认为这可能是浏览器封装了内容,我在 Chrome 和 Safari 中得到了同样的 HTML block ,封装在纯文本输出周围,但是当我使用 curl 时,我得到以下内容.

[jhr@Blackintosh] [~]
curl http://funny-pages.appspot.com/image/all
com.google.appengine.api.oauth.InvalidOAuthParametersException: 

我需要做什么才能让它在浏览器中显示未修饰的内容?

最佳答案

只要 curl 为您提供纯文本,就可以清楚地看出 HTML 换行来自 Google Chrome。此行为可以(应该)在客户端配置。如果您想确保您的客户始终获得纯文本文件 - 将其作为 MIME attachment 发送。在这种情况下,Chrome 将保存一个文件,用户必须使用某种纯文本查看器打开它。

关于java - 如何让浏览器停止使用 <pre> 标签包装我的实体数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884330/

相关文章:

java - 将值从 jsp 发送到 jsp

java - 将项目添加到多维 ArrayList

javascript - 如何使用 Javascript 在 chrome 中禁用保存密码气泡?

javascript - @font-face 无法正常工作的问题

HTML:强制下载 PDF

java - MappableContainerException 中包含的异常

java - 测试空Java对象图的Commons方法?

javascript - Web Worker 内存泄漏?

iphone - iOS UIActivity View Controller : Add To Reading List Button?

javascript - document.querySelectorAll 在 IE、Edge 和 Safari 中的兼容性