25

我知道是否在我自己的网页上,如果我的用户在: http ://www.example.com/form.php

我从该页面发出 ajax 请求: http ://example.com/responder.php

由于同源策略(子域不同),它将失败。

我想了解的是,当请求和服务器明显不同时,AJAX 请求如何从 flickr 之类的 API 中提取数据。


编辑:

例如:为什么这段代码有效?

$.getJSON('http://api.flickr.com/services/rest/?&;method=flickr...'

参考此社区 Wiki)是否使用跨域资源共享

谢谢!

4

1 回答 1

16

解决同源策略的已知方法很少。一种流行的技术是使用“脚本标记注入”,例如在JSONP中。由于<script>标签不受同源策略的约束,第三方域上的脚本可以提供与提供的回调函数交互的可执行代码。您可能需要查看以下文章中的“提示和技巧”部分,以进一步阅读该主题:

您可能也有兴趣查看以下 Stack Overflow 帖子,以进一步阅读解决同源策略的其他技术:


更新:进一步更新的问题:

引用 jQuery 文档$.getJSON()

如果 URL 包含字符串“callback=?” 在 URL 中,请求被视为 JSONP。

于 2010-08-21T07:39:16.293 回答