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

  • 相关阅读:
    jQuery插件jTemplates(模板)
    js常用正则
    SQLServer笔记 //20111027
    神经网络感知器matlab实现
    求全排列(无重复字母)
    python 学习笔记(1、数据类型)
    WampServer 不能打开phpmyadmin 的解决办法
    求一个整形数组里子序列和最大的算法
    堆排序算法的实习(C++)
    归并排序
  • 原文地址:https://www.cnblogs.com/xiaxiaomo/p/9014144.html
Copyright © 2020-2023  润新知