jQuery的getJSON如何实现跨域请求的深层原理是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计560个文字,预计阅读时间需要3分钟。
最近我开发了一个工具,其中有一个功能是获取当前页面的短网址。这个想法很好,可以在我需要快速分享页面链接时使用,特别是在需要跨域操作的时候。最初的想法就是实现跨域的最简单方法。
前几天我在开发一个工具的时候,其中有个功能就是获取本页面的短网址。
这个想法是好的,可是在我付诸于行动的时候,发现这个需要跨域。
起初我的想法就是,跨域的最简单的方法就是增加一个script标签,因为script标签是允许跨域的。
但是问题又来了,对方的API返回的是个json对象,用script标签只能执行,却不能获取到里面的东西,也就是说返回的东西是不可控的。
随后我就想到了jQuery中的getJSON的方法,学习了一下,没想到里面的文章这么大。
jQuery非常聪明,他也意识到只靠script请求是无法接受到返回的东西的,所以他就设计了一个全局的callback函数,发送请求的时候把这个callback函数也传进去。
服务器判断是否有这个callback函数,如果没有就返回一个对象,如果有就返回一个函数名(对象)。
本文共计560个文字,预计阅读时间需要3分钟。
最近我开发了一个工具,其中有一个功能是获取当前页面的短网址。这个想法很好,可以在我需要快速分享页面链接时使用,特别是在需要跨域操作的时候。最初的想法就是实现跨域的最简单方法。
前几天我在开发一个工具的时候,其中有个功能就是获取本页面的短网址。
这个想法是好的,可是在我付诸于行动的时候,发现这个需要跨域。
起初我的想法就是,跨域的最简单的方法就是增加一个script标签,因为script标签是允许跨域的。
但是问题又来了,对方的API返回的是个json对象,用script标签只能执行,却不能获取到里面的东西,也就是说返回的东西是不可控的。
随后我就想到了jQuery中的getJSON的方法,学习了一下,没想到里面的文章这么大。
jQuery非常聪明,他也意识到只靠script请求是无法接受到返回的东西的,所以他就设计了一个全局的callback函数,发送请求的时候把这个callback函数也传进去。
服务器判断是否有这个callback函数,如果没有就返回一个对象,如果有就返回一个函数名(对象)。

