看起来我不能使用"AJAX“在当前域名之外进行呼叫。但是我可以在JQuery中调用twitter API (使用JSON) ...两者不都使用XMLHTTP对象吗?如果是(或者不是),为什么我可以用JSON (使用JQuery)调用另一个域名,但不能用AJAX调用?Ajax和JSON有什么不同呢?
发布于 2010-01-25 03:55:45
twitter API使用JSONP,JSONP不使用XMLHTTPRequest,但使用<script>标记来包含“外来”javascript。然后,此脚本调用您自己的javascript中的函数。
如果没有这个“黑客”(这实际上就是黑客),谷歌地图在第三方网站中的集成是不可能的。
以下是有关JSONP的更多信息:
http://ajaxian.com/archives/jsonp-json-with-padding
或者在维基百科关于JSON的文章中:
发布于 2010-01-25 04:08:42
JSON是一种文件格式,而AJAX是JavaScript中的一种技术,用于在页面加载完成后从web服务器发送和接收数据。AJAX中的X代表XML (也是一种文件格式),它是JSON的替代格式,但用词有点不当,因为人们称之为AJAX的很多东西实际上根本不使用XML。
LeyBaert先生关于JSONP的链接在实际解释Twitter API中发生的事情方面非常有用;它根本不是XMLHTMLRequesting,只是另一个脚本标记,它指向twitter网站上的一个javascript文件,然后当页面第一次加载时,它会与页面的其余部分一起加载。
您可以通过这样做来获得整洁的效果,但是我不认为您可以在页面加载之后(就像使用AJAX一样),除非您开始处理隐藏的IFrames或类似的东西。如果您确实需要在不使用XMLHTTPRequests的情况下获得AJAX风格的内容,那么就需要考虑这个问题:动态地向文档添加一个IFrame,该文档引用一个页面,该页面请求来自另一个站点的脚本(或类似的脚本)。有一些关于这个here的利弊的讨论。
https://stackoverflow.com/questions/2128520
复制相似问题