Asp.net 使用 Jsonp

简介

由于JavaScript的安全机制,ajax不支持跨域调用.所以出现了jsonp.

实现

服务器

public string Jsonp(string name)
{
    string result = string.Format("Welcome {0}", name);
    StringBuilder sb = new StringBuilder();
    string callback = Request.QueryString["callback"] != null ? Request.QueryString["callback"] : "?";
    JavaScriptSerializer js = new JavaScriptSerializer();
    sb.Append(callback + "(");
    sb.Append(js.Serialize(result));
    sb.Append(");");

    //可以直接使用response
    //Response.Write(sb.ToString());
    //不可以返回json格式数据,返回必须是字符串格式,可以试试改为返回JsonResult,在开发者模式中查看两者Response的区别
    //return Json(sb.ToString(),JsonRequestBehavior.AllowGet);

    return sb.ToString();
}

页面调用,在另一解决方案中实现

<button onclick="fun()">jsonp</button>
<script type="text/javascript">

     function fun() {
        var name = 'ch';
        $.ajax({
            url: 'http://localhost:17099/home/Jsonp',
            method: 'GET',
            jsonp: 'callback',
            data: 'name=' + name,
            dataType: 'JSONP'
        }).done(function (data) {
            alert(data);
        }).error(function(data) {
            alert("error");
        });
    };

</script>
Tips

jsonp: 'callback',

json标识符可以自定义,不过前后端要保持一致

转载于:https://www.cnblogs.com/clockwork/p/5722805.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值