zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    FJ省队集训DAY3 T1
    FJ省队集训DAY2 T2
    FJ省队集训DAY2 T1
    FJ省队集训DAY1 T1
    POJ 1225 Substrings
    BZOJ 2732 射箭
    Light OJ 1314 Names for Babies
    SPOJ220 Relevant Phrases of Annihilation
    POJ3683 Falsita
    ES6 常用语法
  • 原文地址:https://www.cnblogs.com/wujf/p/5171114.html
Copyright © 2011-2022 走看看