gpt4 book ai didi

javascript - fetch(或 AJAX Get)返回 html,但 Postman 从 feedburner 返回 xml

转载 作者:行者123 更新时间:2023-12-01 00:59:41 24 4
gpt4 key购买 nike

我正在尝试在我的应用程序中检索 xml 播客提要。我遇到一个问题,我发出的 fetch 请求之一返回 html 文档而不是 xml feed。奇怪的是,如果我使用 Postman 向同一网址发送 /GET ,它会返回 rss feed。它似乎也可以与此处的代码片段一起使用(下面的示例)。

返回 html 文档的示例可以在 this fiddle 中看到。 ,其代码与下面的代码片段完全相同。

有谁能帮我理解为什么会发生这种情况吗?我认为它可以通过设置某种请求 header 来解决,也许?

更新奇怪的是,似乎链接的 fiddle 有时会获取 xml;我想是因为它缓存了调用。如果您在新的隐身窗口中打开它,它会再次获取 html。

$('#fetchXML').click(function(){
$('#xmlContent').text('Loading ...');

const feedUrl = 'https://cors-anywhere.herokuapp.com/http://feeds.wnyc.org/dearhankandjohn';
const headers = new Headers({
'X-Requested-With':'XMLHttpRequest'
});


fetch(feedUrl, headers)
.then(function(response) {
return response.text();
})
.then(function(xmlText) {
$('#xmlContent').text(xmlText);
})
.catch(function(err){
$('#xmlContent').text(err);
});

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td><button id="fetchXML">
Fetch Feed
</button></td>
</tr>
<tr>
<td id="xmlContent"></td>
</tr>
</table>

最佳答案

TL;DR:将格式作为URL中的参数传递。

https://feeds.feedburner.com/codinghorror?format=html

<小时/>

Feedburner 默认返回原始 XML:

HTTP/1.1 200 OK
Alt-Svc: quic=":443"; ma=2592000; v="46,43,39"
Cache-Control: private, max-age=0
Content-Encoding: gzip
Content-Type: text/xml; charset=UTF-8

但它还发送一个样式表,以便浏览器可以应用标记的样式(查看源代码)。

不久前,使用了已弃用的 fmt 参数,现在使用 format,您可以要求 htmlxml .

https://feeds.feedburner.com/codinghorror?format=html

HTTP/1.1 200 OK
Alt-Svc: quic=":443"; ma=2592000; v="46,43,39"
Cache-Control: private, max-age=0
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8

关于javascript - fetch(或 AJAX Get)返回 html,但 Postman 从 feedburner 返回 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56204192/

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