情境描述:
我想使用JavaScript进行一些HTTP API调用,并在浏览器中加载响应。请求可能是GET
、POST
、PUT
或DELETE
,而返回的响应可以是任何类型的内容 - 可能是HTML、JSON、XML或图像、文档、二进制内容或其他任何内容。我希望浏览器以与加载新页面相同的方式处理响应。
问题是我看不到任何方法来加载接收到的任意内容。
显然,可以将内容加载到DOM中,但这只允许我处理HTML。(和潜在地嵌入一些媒体类型,例如图像等)我没有看到任何明显的方法来处理嵌入式响应类型,例如JSON和XML,而不必为如何将每种类型呈现为HTML构造特殊情况。
我曾考虑过是否有一些绕过方法,涉及框架或更改window.location
以加载内容,但我看不到任何使其工作的方法。
是否有可能做到我要寻找的事情,或者您能否提出任何优雅的解决方案?
编辑:
为了更好地了解背景 - 这是关于API浏览器的一些工作。我对GET
和POST
需要做的事情没有问题 - 难点在于PUT
和DELETE
,因为我无法直接使用HTML支持它们。目前,该实现使用一些服务器端技巧和表单上的隐藏的_method
字段,允许将POST
请求重载为PUT
/DELETE
/OPTIONS
/等等,但理想情况下,我希望将该逻辑从服务器端移除,并使用JavaScript执行相应操作。
现在我认为这实际上是不可能的,但我希望有人能证明我错了,或者找到一个优雅的解决方案。
GET
请求(或者对于POST表单来说是POST
),这对我想要的不够。我还想能够在响应PUT
和DELETE
请求时加载新页面。 - Tom Christie