无法进行跨域 Ajax 调用

发布于 2024-09-18 12:44:50 字数 558 浏览 8 评论 0原文

$(文档).ready(函数(){ $.ajax({ 网址:“http://gdata.youtube.com/feeds /api/users/zdf/playlists?v=2", 类型:“获取”, 成功:函数(消息){ 控制台.log(消息); } }); });

我收到此错误“XMLHttpRequest 无法加载 http://gdata. youtube.com/feeds/api/users/zdf/playlists?v=2"

我如何进行跨域 ajax 调用以从 api 获取 xml?

$(document).ready(function(){
$.ajax({
url: "http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2",
type: "GET",
success: function(msg){
console.log(msg);
}
});
});

i get this error "XMLHttpRequest cannot load http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2"

How can i make crossdomain ajax calls to get the xml from the api?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

绮烟 2024-09-25 12:44:50

您无法进行跨域调用来获取 XML。您跨域接收数据的唯一选择是 JSON-P

同源策略限制对外部域(ajax/iframes)的直接访问,json-p使用动态脚本标记插入来解决此问题。

查看 http://api.jquery.com/jQuery.getJSON/。其中也涵盖了 JSON-P

编辑

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

专为您打造!

You cannot make a crossdomain call to to get XML. Your only choice to receive data crossdomain is JSON-P.

The same origin policy restricts direct access to a foreign domain (ajax/iframes), json-p uses dynamic script tag insertion to workaround this issue.

Have a look at http://api.jquery.com/jQuery.getJSON/. JSON-P is also covered there.

edit

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

Made for you!

无言温柔 2024-09-25 12:44:50

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

所提出的解决方案基于让资源源指定允许哪些域发出跨域请求,域“*”意味着任何其他网页都可以托管向该特定资源发出请求的应用程序。

您可以在 w3c 工作草案中阅读更多信息,

现代网络浏览器支持此功能。

There is an ongoing standardization process to work out a scheme to allow cross-domain ajax requests JSON-P is just a temporary workaround since it uses the script tag to make HTTP requests, which is inferior to the XMLHttpRequest object.

The proposed solution is based on letting the resource origin specify which domains that are allowed to make cross-domain requests, the domain "*" means that any other web page can host an application that makes requests to that specific resource.

You can read more in the w3c Working draft

This is supported in modern web-browsers.

债姬 2024-09-25 12:44:50

尝试 $.load() 。请参阅 http://api.jquery.com/load/

try $.load() . see http://api.jquery.com/load/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文