• 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标识符可以自定义,不过前后端要保持一致

  • 相关阅读:
    第一章-实例7-猴子吃桃问题
    第一章-实例6-判断是否为闰年
    第一章-实例3-计算变量所占字节数
    IDEA学习笔记
    spring boot学习概要(尚硅谷)
    JSP动态WEB开发技术--第一章
    学习前端的准备任务
    cmd优化
    软件测试基础概念
    软件工程理论
  • 原文地址:https://www.cnblogs.com/clockwork/p/5722805.html
Copyright © 2020-2023  润新知