博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC,JS跨域访问
阅读量:6964 次
发布时间:2019-06-27

本文共 2159 字,大约阅读时间需要 7 分钟。

hot3.png

不废话了,上完代码准备洗澡睡觉:

function callBackfunction(data) {        alert(data.age);    }
$("#btnSubmit").click(function () {                    $.ajax({                type: "get",                url: "http://localhost:41882/Home/JsonpCallBack",                dataType: "jsonp",                jsonpCallback: "callBackfunction",             });    });

这里还有一种实现方式:

$.getJSON("http://localhost:41882/Home/JsonpCallBack?callback=?", function (json) { alert(json.age); });

第一个要注意的地方是jsonp其实本质上也是json,并且访问方式只能是get, 第一种方式看这个更加直观,  在第一种方式中年不需要在succes了,因为在jsonpCallback中已经实现了success,

后台代码:

public ActionResult JsonpCallBack()        {            string callback = Request.QueryString["callback"];            string json = "{'name':'张三','age':'20'}";            string result = string.Format("{0}", json);             return Content(result);         }

jsonp只支持get哦,这个一定要注意

但是,很多牛人经过各种改造我们有制作出来了JsonpResult,  因为mvc内置没有JsonpResult方法:

public class JsonpResult : JsonResult    {        object data = null;        public JsonpResult()        {        }        public JsonpResult(object data)        {            this.data = data;        }        public override void ExecuteResult(ControllerContext controllerContext)        {            if (controllerContext != null)            {                var Response = controllerContext.HttpContext.Response;                var Request = controllerContext.HttpContext.Request;                string callbackfunction = Request["callback"];                if (string.IsNullOrEmpty(callbackfunction))                {                    throw new Exception("Callback function name must be provided in the request!");                }                Response.ContentType = "application/x-javascript";                if (data != null)                {                    var serializer = new JavaScriptSerializer();                    Response.Write(string.Format("{0}({1});", callbackfunction, serializer.Serialize(data)));                }            }        }    }

使用示例:

public ActionResult JsonpCallBack()        {             return new JsonpResult(new { name = "张三", age = 20 });         }

 

 

 

转载于:https://my.oschina.net/objectboy/blog/739059

你可能感兴趣的文章
Webit Script 入住 OSC
查看>>
java8 学习记录
查看>>
C++中free与delete的区别
查看>>
struts2笔记(7)-----Struts2的拦截器分析
查看>>
Hadoop-ha 集群搭建
查看>>
install python
查看>>
根据模板导出EXCEL
查看>>
学习笔记-小甲鱼Python3学习第三十讲:文件系统:介绍一个高大上的东西
查看>>
SQL Server常见错误。
查看>>
大B与小b
查看>>
关于linux挂载windows文件时linux报错问题解决方法
查看>>
快速部署 yum 源
查看>>
VMware Workstation 8 正式版发布(附注册机下载地址)
查看>>
3月29日
查看>>
Java版InfluxDB工具类
查看>>
Python os/shutil/path 模块
查看>>
python学习笔记操作mongodb(九)
查看>>
[转]在A*寻路中使用二叉堆
查看>>
【Cloud Foundry 应用开发大赛】“17轻松”文章采集应用
查看>>
第七节 泛型(Generics)
查看>>