本文摘自PHP中文网,作者php中世界最好的语言,侵删。
这次给大家带来jQuery+JSONP跨域需要怎样实现,jQuery+JSONP跨域实现的注意事项有哪些,下面就是实战案例,一起来看一下。了解了jsonp之后,大家应该也都明白了,jsonp主要就是用来实现跨域的获取数据,今天我们就来详细探讨下如何在实际中应用jsonp实现跨域
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
??上面一段话来自百度百科,概念永远是那么抽象难懂,看例子才是最直观的表现。例子看的多了,领悟到那个点了,自然自己也会学着抽象的描述了。这就是为什么常说“学习知识是从薄到厚,又由厚到薄的过程”。好了扯远了。下面直接来看一个例子。
??问题:本地现有一个页面demo.html需要从http://localhost:3561/User/GetAllNames获取数据并展示。
??解答:由于问题中的两方不在同一服务器,故需要使用jsonp来跨域访问。
??① 客户端编写
??客户端使用jQuery中提供的$.getJson方法来跨域访问。getJson有3个参数:
????I. url:请求地址;
????II. data:发送到服务端的参数;
????III. callback:成功时的回调函数。
??getJson的使用方法和普通的$.get方法基本一致,不同的地方在于getJson需要在url后面的参数部分加上callback=?这一固定部分,jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。然后在回调函数中操作从异域返回的json对象,回调函数callback的参数即为该json对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
② 服务端编写
??服务端的逻辑主要是将数据序列化为json字符串,然后封装成"callback(json)"的形式,callback为jQuery自动生成并传到服务端的函数名称。下面使用C#实现:
1 2 3 4 5 6 7 8 9 10 |
|
至此,便成功解决了问题。
?思考:如果服务端已经写死了callback(如:return string.Format("moty({0})", json);),那么客户端该怎么写呢?
?参考:
1 2 3 4 5 6 7 8 9 |
|
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
jquery中select组件的使用方法
如何实现jquery回车登录效果
鼠标移出事件的案例以及详解
jQuery自定义函数应用以及解析
以上就是jQuery+JSONP跨域需要怎样实现的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《jQuery+JSONP》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者