成都网站建设设计

将想法与焦点和您一起共享

jQuery+JSONP跨域请求怎么实现

这篇文章主要介绍jQuery+JSONP跨域请求怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

我们提供的服务有:网站设计制作、成都网站设计、微信公众号开发、网站优化、网站认证、丰润ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的丰润网站制作公司

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 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.length; i++) {
          $("#nameList").append("
  • " + json[i] + "
  • ");     }   } });

    以上是“jQuery+JSONP跨域请求怎么实现”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


    当前题目:jQuery+JSONP跨域请求怎么实现
    转载源于:http://chengdu.cdxwcx.cn/article/jcgcsh.html