通过jQuery+JSONP中跨域请求的方法(详细教程)

了解了jsonp之后,大家应该也都明白了,jsonp主要就是用来实现跨域的获取数据,今天我们就来详细探讨下如何在实际中应用jsonp实现跨域

  JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的 元素是一个例外。利用 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

  上面一段话来自百度百科,概念永远是那么抽象难懂,看例子才是最直观的表现。例子看的多了,领悟到那个点了,自然自己也会学着抽象的描述了。这就是为什么常说“学习知识是从薄到厚,又由厚到薄的过程”。好了扯远了。下面直接来看一个例子。

 通过jQuery+JSONP中跨域请求的方法(详细教程)

  问题:本地现有一个页面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对象。

nbsp;html>    

登录后复制     $.getJSON(“http://localhost:3561/User/GetAllNames?callback=?”, function(json) { for (var i = 0; i < json.length; i++) { $("#nameList").append("

  • ” + json[i] + “”); } });

      ② 服务端编写

      服务端的逻辑主要是将数据序列化为json字符串,然后封装成”callback(json)”的形式,callback为jQuery自动生成并传到服务端的函数名称。下面使用C#实现:

    public class UserController : Controller{    public string GetAllNames(string callback)  {    string[] names = new string[] { "张三丰", "张无忌", "令狐冲", "杨过", "郭靖" };    JavaScriptSerializer jss = new JavaScriptSerializer();    string json = jss.Serialize(names);    return string.Format("{0}({1})", callback, json);  }}

    登录后复制

      至此,便成功解决了问题。

    通过jQuery+JSONP中跨域请求的方法(详细教程)

     思考:如果服务端已经写死了callback(如:return string.Format(“moty({0})”, json);),那么客户端该怎么写呢?

     参考:

    $.ajax("http://localhost:3561/User/GetAllNames", {  jsonpCallback: "moty",  dataType: "jsonp",  success: function(json) {    for (var i = 0; i " + json[i] + "");    }  }});

    登录后复制

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    利用ES6通过WeakMap解决内存泄漏问题(详细教程)

    Node.JS循环删除非空文件夹及子目录下的所有文件

    Javascript中prototype与__proto__的关系详解

    以上就是通过jQuery+JSONP中跨域请求的方法(详细教程)的详细内容,更多请关注【创想鸟】其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

    发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2752301.html

  • (0)
    上一篇 2025年3月8日 06:21:52
    下一篇 2025年2月24日 07:08:46

    AD推荐 黄金广告位招租... 更多推荐

    相关推荐

    • 怎样使用Node.js内Koa实现JWT用户认证

      这次给大家带来怎样使用Node.js内Koa实现JWT用户认证,使用Node.js内Koa实现JWT用户认证的注意事项有哪些,下面就是实战案例,一起来看一下。 一、前置知识 基于Token的身份验证 Koajs 中文文档 Koa 框架教程 …

      2025年3月8日 编程技术
      200
    • Vue.js实战项目分享

      这次给大家带来Vue.js实战项目分享,Vue.js实战的注意事项有哪些,下面就是实战案例,一起来看一下。 对大部分人来说,掌握Vue.js基本的几个API后就已经能够正常地开发前端网站。但如果你想更加高效地使用Vue来开发,成为Vue.j…

      编程技术 2025年3月8日
      200
    • 怎样使用jQuery.i18n.properties让JS代码国际化

      这次给大家带来怎样使用jQuery.i18n.properties让JS代码国际化,使用jQuery.i18n.properties让JS代码国际化的注意事项有哪些,下面就是实战案例,一起来看一下。 当我们在做前台页面开发时,由于页面内容过…

      2025年3月8日 编程技术
      200
    • 怎样使用源生JS代码实现百度搜索框

      这次给大家带来怎样使用源生JS代码实现百度搜索框,使用源生JS代码实现百度搜索框的注意事项有哪些,下面就是实战案例,一起来看一下。 最近做了个百度搜索框今天给大家分享下。 效果:   1.当进入界面时,自动调用方法,获取当前的时间,并且实时…

      2025年3月8日
      200
    • 如何使用JS+CSS3实现图片响应鼠标移动放大缩小

      这次给大家带来如何使用JS+CSS3实现图片响应鼠标移动放大缩小,使用JS+CSS3实现图片响应鼠标移动放大缩小的注意事项有哪些,下面就是实战案例,一起来看一下。 今天看网易的网站上,当我把鼠标放上去的时候发现图片放大,移开图片缩小,于是自…

      2025年3月8日
      200
    • 如何使用JS模拟实现哈希表

      这次给大家带来如何使用JS模拟实现哈希表,使用JS模拟实现哈希表的注意事项有哪些,下面就是实战案例,一起来看一下。 在算法中,尤其是有关数组的算法中,哈希表的使用可以很好的解决问题,所以这篇文章会记录一些有关js实现哈希表并给出解决实际问题…

      2025年3月8日
      200
    • 怎样使用Vue结合Video.js播放m3u8视频

      这次给大家带来怎样使用Vue结合Video.js播放m3u8视频,使用Vue结合Video.js播放m3u8视频的注意事项有哪些,下面就是实战案例,一起来看一下。 首先,我们需要在vue工程中安装video.js相关依赖。 npm inst…

      编程技术 2025年3月8日
      200
    • 怎样使用JS+AJAX做出三级联动

      这次给大家带来怎样使用JS+AJAX做出三级联动,使用JS+AJAX做出三级联动的注意事项有哪些,下面就是实战案例,一起来看一下。 js 三级联动的实现代码如下所示: js原生ajax -请选择 省/直辖市/自治区- -请选择 市- var…

      编程技术 2025年3月8日
      200
    • JavaScript基础 详细解读浅拷贝和深拷贝之间的问题

      浅拷贝和深拷贝都是对于js中的引用类型而言的,浅拷贝就只是复制对象的引用,如果拷贝后的对象发生变化,原对象也会发生变化。只有深拷贝才是真正地对对象的拷贝 前言 说到深浅拷贝,必须先提到的是JavaScript的数据类型,之前的一篇文章Jav…

      编程技术 2025年3月8日
      200
    • js获取html页面代码中图片地址的实现代码

      这篇文章主要介绍了js获取html代码中图片地址的实现代码,需要的朋友可以参考下 第一种方法:js通过正则实现 /**  * 获取html代码中图片地址  * @param htmlstr  * @returns {Array}  */ f…

      编程技术 2025年3月8日
      200

    发表回复

    登录后才能评论