同源策略 - AJAX和使用公共API

DMi*_*Min 23 javascript ajax xmlhttprequest same-origin-policy

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

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

由于相同的原始策略(子域不同),它将失败.

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


编辑:

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

$.getJSON('http://api.flickr.com/services/rest/?&;method=flickr...'
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Dan*_*llo 17

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

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


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

引用jQuery文档$.getJSON():

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