XMLHttpRequest在一个页面上被阻止而在另一个页面上被阻止了?

时间:2013-01-19 21:57:40

标签: javascript

我有两个页面,都在同一个域上。两者都试图从Google日历中获取活动信息。一个是成功的,一个不是。唯一的区别是一个使用jQuery的document.ready,另一个使用window.onload。

有效的网页:http://wwwtest.english.wisc.edu/calendar.htm

不起作用的网页:http://wwwtest.english.wisc.edu/844.htm

第二页是由CMS生成的,所以我对脚本的加载顺序没有那么多的控制权,因此我使用window.onload来确保首先加载其他脚本。

* 以下补充说明 *

是的,我已经完成了调试,这是确切的错误:

  

XMLHttpRequest无法加载   https://www.google.com/calendar/feeds/rhrab82ir5qgut1ddv7qj087c8%40group.ca ... ar.google.com /公/基本开始= 1356847200&放大器;结束= 1360476000&放大器; _ = 1358694509517。   来源http://wwwtest.english.wisc.edu不被允许   访问控制允许来源。

但令我困惑的部分是:

我从有效的页面复制了代码,只更改了两件事:

1)我从使用jQuery的document.ready改为使用window.onload

2)我更改了jQuery选择器

4 个答案:

答案 0 :(得分:1)

我可能已经在firebug中快速调试了你的问题。你的电话

https://www.google.com/calendar/feeds/rhrab82ir5qgut1ddv7qj087c8%40group.calendar.google.com/public/basic?start=1356850800&end=1360479600&_=1358632991615 正在回归: XML解析错误:找不到元素位置:moz-nullprincipal:{627004d0-0e97-ca46-9ae8-767df4ae9d4f}第1行,第1列:

Cross-domain Ajax call gets no element found Location: moz-nullprincipal

有一些有趣的信息

jQuery Ajax call No element found issue

答案 1 :(得分:1)

XMLHttpRequest无法加载https://www.google.com/calendar/feeds/rhrab82ir5qgut1ddv7qj087c8%40group.ca ... ar.google.com / public / basic?start = 1356814800& end = 1360443600& _ = 1358633133560。 Access-Control-Allow-Origin不允许原点http://wwwtest.english.wisc.edu

我使用Chrome进行调试。用于JavaScript控制台的Ctrl + Shift + J。

答案 2 :(得分:1)

显然,完整日历包含使用Google日历活动所需的特定附加脚本。

信息在这里:http://arshaw.com/fullcalendar/docs/google_calendar/

第一个示例加载了此脚本,但第二个示例没有加载。添加后,事件正确加载。

答案 3 :(得分:0)

第一个是使用jsonp api,而第二个是使用xml api因此适用相同的原始策略,如果你可以改变第二个请求使用jsonp api。