代码之家  ›  专栏  ›  技术社区  ›  antpaw

无法进行跨域Ajax调用

  •  3
  • antpaw  · 技术社区  · 14 年前

    $(document).ready(函数()。{ $Ajax({ 网址: http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2 “ 类型:“获取”, 成功:函数(msg){ console.log(消息); } (}); (});

    我得到这个错误“xmlhttprequest cannot load http://gdata.youtube.com/feeds/api/users/zdf/playlists?V=2

    如何进行跨域Ajax调用以从API获取XML?

    3 回复  |  直到 14 年前
        1
  •  6
  •   jAndy    14 年前

    不能跨域调用以获取XML。接收跨域数据的唯一选择是 JSON-P .

    这个 same origin policy 限制对外部域(Ajax/iframes)的直接访问, json-p 使用 dynamic script tag insertion 解决这个问题。

    看一看 http://api.jquery.com/jQuery.getJSON/ . JSON-P 也包括在那里。

    编辑

    http://code.google.com/intl/de-DE/apis/youtube/2.0/developers_guide_json.html

    为你做的!

        2
  •  2
  •   Ernelli    14 年前

    有一个正在进行的标准化过程来制定一个允许跨域Ajax请求的方案JSON-P只是一个临时的解决方案,因为它使用脚本标记来发出HTTP请求,这比XMLHttpRequest对象差。

    建议的解决方案基于让资源来源指定允许跨域请求的域,域“*”表示任何其他网页都可以承载向该特定资源发出请求的应用程序。

    您可以在W3C工作中阅读更多内容 draft

    这在现代Web浏览器中得到了支持。

        3
  •  0
  •   Florin P.    14 年前

    尝试$.Load()。看见 http://api.jquery.com/load/