gpt4 book ai didi

jquery - 使用 JQuery 解析 Google 日历 XML

转载 作者:行者123 更新时间:2023-12-01 01:37:31 25 4
gpt4 key购买 nike

我正在尝试像这样解析谷歌日历提要:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<p id="entries"></p>

<script>

$(document).ready(function(){
$.ajax({
url: 'http://www.google.com/calendar/feeds/339if8qgnu8pic5a2ru4moe5m0%40group.calendar.google.com/public/full',
dataType: 'xml',
success: parseXML
});
function parseXML(xml){
$(xml).find('entry').each( function() {
$('#entries').append($(this).find('title').text() + '<br />')
});
}
});
</script>

</body>
</html>

但它找不到任何元素。我究竟做错了什么?尝试使用相同的代码和更简单的 XML 文件,结果有效...

最佳答案

当我自己测试时,似乎找不到任何元素,因为请求没有返回任何数据。我认为由于有关无效编码的评论,我肯定错过了一些东西...但是,我下载了 XML 文档并将其保存在您提供的 HTML 文件旁边,并进行了以下更改:

url: 'full.xml',
完成此操作后,(对我来说)段落元素现在填充了可以在您的目标 XML 中看到的两个条目。这肯定是因为跨域策略以及其他原因吗?

您有多种选择来正确获取 XML:

  • 服务器端 PHP file_get_contents()/cURL
    >>该文件现在可以由您的页面进行 AJAX 处理,因为您位于同一域中。
    >>此服务器端请求也可以是此页面的一部分,即:加载页面时,PHP/Whatever 可以将其作为 JavaScript 中的变量或隐藏元素中的变量进行回显。

  • 修改后的 AJAX 请求
    >>修改后的 AJAX 请求将适用于跨域请求。有用,因为服务器将不会执行请求,这可能正是您想要的。如果是这样的话,那么我应该提到;我有一个名为 jquery.xdomainajax.js 的文件,它允许跨域 AJAX 请求。我现在正在寻找来源,但我想我会赶紧写这篇文章,以便您可以根据需要自行搜索。

    编辑:检查this出去。
    Edit2:经过一些简短而粗心的测试,我无法使用上面的 jQuery 解决方法插件让它工作......所以我的解决方案是在服务器端抓取它。

    以下是更多链接:

  • How to load a certain div of an external webpage on another webpage that is on a different domain
  • Get Websites Title
  • JQuery ajax cross domain call and permission issue



仅供引用:我使用的是 FireFox 12.0

关于jquery - 使用 JQuery 解析 Google 日历 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9738765/

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