• jsonp调用webapi和mvc


    webapi代码如下:

            public string Get(int id)
            {
                var callback = HttpContext.Current.Request["callback"];
                var u = new User { Name = "AA", Age = id };
                var result = new JavaScriptSerializer().Serialize(u);
                if (string.IsNullOrWhiteSpace(callback))
                    return result;
                else
                {
                    HttpContext.Current.Response.Write(string.Format("{0}({1})", callback, result));
                    HttpContext.Current.Response.End();
                }
                return "";
            }

    注:这种写法必须要用

    HttpContext.Current.Response.Write方式返回,具体原因暂时不知道,如果直接返回,前台会请求成功,但是解析时会报错。

    MVC写法如下:

            public string Index()
            {            
                var callback = Request["callback"];
                return string.Format("{0}({1})", callback, "{"n":111}");
            }

    注:

    callback是自定义的回调与jquery保持一致,具体为什么可以了解jsonp原理,也可以通过chrome的network瞅瞅交易的过程

    html代码如下:
                    $.ajax({
                        type: "get",
                        url: "http://localhost:21931/api/myapi/12311111",
                        dataType: "jsonp",
                        jsonp: "callback",
                        success: function (msg) {
                            jalert(JSON.stringify(msg));
                        },
                        error: function (a, b, c) {
                            jalert("error");
                        }
                    });

     服务启动后,直接通过浏览器打开页面就可以获取到数据

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    Linux--shell三剑客<sed>--07
    Linux--shell交互输入与循环语句--06
    Linux--shel分支语句--05
    Linux--shell grep与正则表达式--04
    Linux--shell编程原理--03
    Linux--shell重定向与文件处理命令--02
    Linux--shell的基本特性--01
    Docker数据卷
    Docker容器
    Docker的安装
  • 原文地址:https://www.cnblogs.com/wujf/p/5171114.html
Copyright © 2020-2023  润新知