zoukankan      html  css  js  c++  java
  • Ajax-jsonp

    一、什么是Jsonp

    jsonp(json with padding) 是一种“使用模式”,可以让网页从别的域名那获取资料,即跨域读取数据。

    为什么会使用jsonp呢?因为同源策略(数据来源一致),现在所有支持javascript 的浏览器都会使用这个策略。

     Ajax请求资源受同域的限制,不管是静态资源,动态资源,web服务都不行。

    web页面上调用的js文件不受跨域的影响,即(a.cubejoy.com域名下的a.html可以调用b.cubejoy.com域名下的b.js 但是b.js里ajax请求的数据获取不到)

    c#具体用法:

    ReturnGrade: function () {
    $.ajax({
    url: "//my.cubejoy.com/Handler/MyData.ashx",
    type: "get",
    dataType: "jsonp",
    jsonp: "jsonpCallBack",
    data: { "type": "UserGrade" },
    success: function (data) {
    try {
    if (data.State) {
    if (data.Data) {
    $(".userinfoGradeName").text(data.Data.split('|')[1]);
    $(".userinfoGrade").text(data.Data.split('|')[0]);
    }
    }
    else {
    Common.MyMsg.ErrorMsg(data.Msg);
    }
    } catch (e) {
    Common.MyMsg.ErrorMsg(e.message);
    }
    }
    });
    },

    后台cs

    private string ReturnUserGrade(HttpContext context)
    {
    result = new Utils.HandlerResult();
    string jsonpCallBack = context.Request["jsonpCallBack"];
    try
    {
    string userid = IsLogin().uid.ToString();
    result.State = Utils.HandlerState.Yes;
    result.Data = Common.AppCode.GetUserGrade(userid);
    }
    catch (Exception ex)
    {
    result.State = Utils.HandlerState.No;
    result.Msg = ex.Message;
    GetErrorLog(ex, "ReturnUserGrade");
    }
    return jsonpCallBack + "(" + CommonDLL.Utils.ObjectToJsonStr(result) + ")";
    }

  • 相关阅读:
    Sass变量、嵌套
    遮罩层2
    遮罩层
    大图轮播
    项目资料(主页)
    关于时间控制和制定时间日期
    dom作业
    js的dom操作和函数
    js数组去重
    js For循环练习。
  • 原文地址:https://www.cnblogs.com/xiaxiaomo/p/9014144.html
Copyright © 2011-2022 走看看