gpt4 book ai didi

jquery - jFeed - 未执行成功函数(jQuery 插件)

转载 作者:行者123 更新时间:2023-12-01 03:06:24 26 4
gpt4 key购买 nike

我有以下 Javascript 代码,其中 feed 是 rss feed 的有效 URL。

jQuery(function() {

jQuery.getFeed({
url:feed,
success: function(feed){
alert(feed);
}
});
});}

当我运行此命令时,警报永远不会出现。使用 Firebug,我可以看到正在建立的连接以及来自提要的响应。

注意:我知道这是一个安全问题,有些浏览器会阻止它,但目前的情况并非如此,因为我已经解决了该问题,并且浏览器不再阻止连接

编辑:由于某种原因,我无法让评论显示在此处:

目前该调用并未由脚本代理,因为这是一个测试,我只是使用以下内容覆盖浏览器安全设置:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

最佳答案

根据您提供的信息,我们可以看出您的通话是正确的。问题可能出在其他地方。建议您深入 jFeed 源代码并在 $.ajax success 方法中禁用 feed 解析:

    $.ajax({
type: 'GET',
url: options.url,
data: options.data,
dataType: 'xml',
success: function(xml) {
var feed = xml; // <== was "var feed = new JFeed(xml);"
if(jQuery.isFunction(options.success)) options.success(feed);
}
});

如果弹出警报,则表明存在提要解析问题。在这种情况下,您可以检查 xml 是否正确,然后在此处提交以供进一步调查。

<小时/>

我已经运行了一些测试并检查了 jQuery 代码。您说您解决了浏览器安全问题:我猜您在服务器上安装了一个代理脚本,该脚本将从远程服务器下载 rss 文件,然后将其传输到您的 ajax 请求(因为浏览器将阻止对 ajax 调用服务器与您的页面所在的服务器不同)。当使用 dataType : 'xml' 进行 ajax 调用时,jQuery 期望响应的内容类型包含字符串“xml”:

var ct = xhr.getResponseHeader("content-type"),
xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
data = xml ? xhr.responseXML : xhr.responseText;

这是我的问题:

  • 您是否像我想的那样使用脚本作为代理脚本?
  • 此脚本是否将内容类型设置为包含 xml 的内容?

这是 jFeed 附带的简约 PHP 示例:

<?php
header('Content-type: application/xml');
$handle = fopen($_REQUEST['url'], "r");

if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>

关于jquery - jFeed - 未执行成功函数(jQuery 插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661990/

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