小编典典

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

ajax

我知道我的用户是否在自己的网页上: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)是否使用跨源资源共享

谢谢!


阅读 322

收藏
2020-07-26

共1个答案

小编典典

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

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


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

引自jQuery文档$.getJSON()

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

2020-07-26