从REST服务返回text / html

时间:2014-08-24 05:21:02

标签: rest

我从REST Web服务返回text / html(MediaType.TEXT_HTML),我想在浏览器中显示。

从网络服务方法= <html> <body background=\"WEB-INF\\DSCN0651.JPG\"> <h1>Hello World!!!</h1><a href="http://www.w3schools.com">Visit W3Schools.com!</a> <audio autoplay><source src=\"WEB-INF\\Coolest_Sms_All_Time.mp3\" type="audio/mpeg"</audio> </body></html>

返回字符串
  1. 我面临的问题是背景= DSCN0651.JPG未在浏览器中呈现
  2. 音频自动播放无效,因为我无法在浏览器中听到声音。
  3. 虽然我只能看到Hello World!!!并链接www.w3schools.com!在REST调用后在浏览器中

    我检查了部署区域,图像和mp3都在WEB-INF文件夹下正常部署 我正在使用IE / chrome浏览器调用我的WebService get方法。

    请让我知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

要链接图像或音频(或任何资源),您需要通过向服务器询问该资源来提供客户端浏览器可以理解的相对URL。如果您在网址http://example.com/foo/bar上有如上所述的网页,则浏览器会尝试查找http://example.com/foo/bar/WEB-INF\DSCN0651.JPG,但该网址无效。我建议您通过自己尝试使用真实网址,以及使用开发人员工具查看浏览器对您网页的处理方式来检查。

该网址无效,至少因为它使用反斜杠\而不是正斜杠/。 URL中的错误。 实际上,您展示的内容使用的是\"\\,但只有当您将它们作为字符串嵌入源代码中时才能显示,分别代表"和{{1 }}。您可能希望检查输出以确保正确。

此外,该URL包含WEB-INF。我假设您正在使用Java应用程序服务器。但是,WEB-INF文件夹的内容由Java应用程序服务器专门处理 - 事实上,resources there are not accessible to the public!所以你应该把它们移到别处并更新路径(正确的地方取决于你正在做什么)。可能在WEB-INF之外移动它们,并且更新URL已经有效。