javascript - 同源策略 - AJAX 和使用公共(public) API

标签 javascript ajax xmlhttprequest same-origin-policy

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

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

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

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

<小时/>

编辑:

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

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

( Referred this Community Wiki ) 是否使用 Cross Origin Resource Sharing

谢谢!

最佳答案

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

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

<小时/>

更新:进一步更新问题:

引用 $.getJSON() 上的 jQuery 文档:

If the URL includes the string "callback=?" in the URL, the request is treated as JSONP instead.

关于javascript - 同源策略 - AJAX 和使用公共(public) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3536800/

相关文章:

javascript - 将函数及其参数传递给另一个函数来执行它的语法是什么?

javascript - firefox 中的 Jquery Tab header

ajax - grails中的远程文件上传

javascript - jQuery Ajax请求内容下载为空

javascript - 使用 FormData 上传多个表单,并使用 Javascript 上传单个 XMLHttpRequest

javascript - Javascript 中 XML HTTP 请求的问题

javascript - _.isEmpty() 显示不为空但显示为空

javascript - 使用 select 的全日历过滤事件

c# - 如何将 JavaScript 数组传递给 ASP.Net MVC Action 作为帖子的一部分

javascript - 在 ajax 调用之前显示模态形式并从中获取数据