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) + ")";
    }

  • 相关阅读:
    Hexo命令无法找到 -问题修复
    技术的本质
    java 多线程总结篇4——锁机制
    java 多线程总结篇3之——生命周期和线程同步
    java 多线程总结篇2之——Thread类及常用函数
    java 多线程总结篇1之——基本概念
    java IO流的继承体系和装饰类应用
    java IO流知识点总结
    java IO流之——File类知识总结和面试
    为什么需要学UML建模
  • 原文地址:https://www.cnblogs.com/xiaxiaomo/p/9014144.html
Copyright © 2011-2022 走看看