关于jsonp的理解

jsonp就是js的跨域操作,因为知道有些标签可以跨域获取内容,例如img,script,link...,jsonp就是把动态创建一个script标签,然后配置url,后台代码返回的时一个函数,称之回调函数,


后台完成业务后,调用下面这个AjaxHandleCrossDomainFormat()来返回一个要回调函数,后台执行完成后并返回此js代码,然后调用js的success_jsonpCallback方法,因为ajax封装好了,所以直接在参数[jsonpCallback]处写这个方法的名称即可,至于ajax中jsonp这个参数就类似于url中的ID=1,在这里时callback=success_jsonpCallback(),这些名字可以随便改,实现跨域也可以用iframe之类的,也可以不用ajax,动态创建一个script标签,把网址赋进去,然后本地在写一个方法,后台返回值就是这个方法,他自己就会调用,

还有,了解到,jsonp作为一种数据传输方法,和ajax的意义是相冲突的,本身jsonp是不应该集成在ajax中的,跨域的简单笔记完成~

  private string AjaxHandleCrossDomainFormat(string Json, string callbackparam = null)
        {
            if (callbackparam == null)
            {
                return "success_jsonpCallback([" + Json.Replace(@"\n", "").Replace("\"", "'").Replace(@"\", "") + "])";
            }
            else
            {
                return callbackparam + "([" + Json.Replace("\n", "").Replace("\"", "'").Replace(@"\", "") + "])";
            }
        }
ajax: 

$.ajax({
                type: "post",
                url: "http://myesn.cn/remote.js",
                dataType: "jsonp",
                jsonp: "callback",
                jsonpCallback: "success_jsonpCallback",
                success: function (data) {
                    console.trace();
                    console.log(data.result);
                },
                error: function (msg) {
                    console.log(msg.statusText);
                }
            });

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值