zoukankan      html  css  js  c++  java
  • ajax 跨域

    一个一般处理程序服务端

    返回的数据是json

     public void ProcessRequest(HttpContext context)
            {
                citys c = new citys();
                c.age = "12";
                c.city = "bj";
                c.hosst = "www.baidu.com";
                c.name = "张三";
                c.weather = "天气";
    string cc = JsonConvert.SerializeObject(c); context.Response.ContentType = "text/plain"; context.Response.Write( cc ); }

     

    这个一般处理程序返回jsonp

     public void ProcessRequest(HttpContext context)
            {
                citys c = new citys();
                c.age = "12";
                c.city = "bj";
                c.hosst = "www.baidu.com";
                c.name = "张三";
                c.weather = "天气";
                string cc = JsonConvert.SerializeObject(c);
                context.Response.ContentType = "text/plain";
                string callbackFunName = context.Request["callback"];
                context.Response.Write(callbackFunName + "([" + cc + "])");
            }

    可以看出jsonp是包裹着json这样理解

     json:cc

    jsonp:callbackFunName(cc)

    下面是客户端的请求

     $("#aaa").click(function () {
                    $.ajax({
                        type: "get",
                        async: false,
                        url: "http://www.server.com/handler1.ashx",
                        dataType: "jsonp",
                        jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
                        jsonpCallback: "success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
                        success: function (data) {
                            alert(data);
                            alert(data[0].name);
                        },
                        error: function () {
                            alert('fail');
                        }
                    });
                });
    

     

    ---------------------------------------------------------------------------------------------------------------------------------------------------

     自己做一个一般处理程序,让请求变为同域

    一个天气请求的接口处理

     public class Handler1 : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write(getString());
            }
            private string getString()
            {
                HttpWebRequest re = WebRequest.Create("http://www.weather.com.cn/data/sk/101010100.html") as HttpWebRequest;
                HttpWebResponse rs = re.GetResponse() as HttpWebResponse;
                string st = new StreamReader(rs.GetResponseStream()).ReadToEnd();
                return st;
            }
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    

      使用ajax 请求变成了同域,

                    返回的数据为string ,使用JSON.parse()  转化为json 对象

                   直接使用js对象 就可以查询想看的数据了

      <script>
                $("#aaa").click(function () {
                    debugger;
                    $.ajax({
                        type: "get",
                        async: false,
                        url: "handler1.ashx",
                        success: function (data) {
                            debugger;
                            alert(data);
                            debugger;
                            var js = JSON.parse(data);
                            var v = js.weatherinfo.city;
                            var d = js.weatherinfo.temp;
                            var a = js.weatherinfo.WD;
                            alert(js.city);
                        },
                        error: function () {
                            alert('fail');
                        }
                    });
                });
            </script>
    

      

  • 相关阅读:
    【JLOI2011】飞行路线
    P3369 【模板】普通平衡树
    P1144 最短路计数
    P1462 通往奥格瑞玛的道路
    【NOIP2017】宝藏
    P1120 小木棍
    P3919 【模板】可持久化数组(可持久化线段树/平衡树)
    P3834 【模板】可持久化线段树 1(主席树)
    矩阵清零--进军硅谷
    二维数组搜素--进军硅谷
  • 原文地址:https://www.cnblogs.com/dcrBook/p/10037075.html
Copyright © 2011-2022 走看看