ASP.NET MVC 实现跨域请求的两种形式
一、使用jsonp请求
1 $.ajax({ 2 type: "GET", 3 url: "http://10.174.1.1/Home/Test?callback=?", 4 data: { id: "1" }, 5 dataType: "jsonp", 6 jsonp: "callback", 7 success: function (data) { 8 alert(data); 9 }, 10 error: function (XMLHttpRequest, textStatus, errorThrown) { 11 alert(errorThrown); 12 } 13 });
1 //Jsonp跨域访问 2 [HttpGet] 3 public ActionResult Test() 4 { 5 string vid = Request.QueryString["id"]; 6 string callback = Request["callback"]; 7 return new JsonpResult<object>(Member.FirstOrDefault(u => u.id == id).Name, callback); 8 } 9 10 11 public class JsonpResult<T> : ActionResult 12 { 13 public T Obj { get; set; } 14 public string CallbackName { get; set; } 15 16 public JsonpResult(T obj, string callback) 17 { 18 this.Obj = obj; 19 this.CallbackName = callback; 20 } 21 22 public override void ExecuteResult(ControllerContext context) 23 { 24 var js = new System.Web.Script.Serialization.JavaScriptSerializer(); 25 var jsonp = this.CallbackName + "(" + js.Serialize(this.Obj) + ")"; 26 27 context.HttpContext.Response.ContentType = "application/json"; 28 context.HttpContext.Response.Write(jsonp); 29 } 30 }
二、跨域资源共享
相比 JSONP 请求,跨域资源共享要简单许多,也是实现跨域 AJAX 请求的首选。不过在 IE9 还没有对该技术的支持,FireFox 就已经支持了
1 $.ajax({ 2 type: "GET", 3 url: "http://10.174.1.1/Home/Test2", 4 data: { id: "1" }, 5 dataType: "json", 6 success: function (data) { 7 alert(data); 8 }, 9 error: function (XMLHttpRequest, textStatus, errorThrown) { 10 alert(errorThrown); 11 } 12 });
1 //跨站资源共享实现跨站AJAX请求 2 public ActionResult Test2() 3 { 4 string vid = Request.QueryString["id"]; 5 HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "*"); 6 return Json(Member.FirstOrDefault(u => u.id == id).Name, JsonRequestBehavior.AllowGet);7 8 }
转载于:https://www.cnblogs.com/spqadd/p/4546265.html
ASP.NET MVC 实现跨域请求的两种形式相关推荐
- vue 使用axios 出现跨域请求的两种解决方法
vue 使用axios 出现跨域请求的两种解决方法 参考文章: (1)vue 使用axios 出现跨域请求的两种解决方法 (2)https://www.cnblogs.com/wangshengli5 ...
- springboot 添加允许跨域_springboot设置cors跨域请求的两种方式
1.第一种: public class CorsFilter extends OncePerRequestFilter { static final String ORIGIN = "Ori ...
- ASP.NET MVC和ASP.NET Web API跨域请求问题解决方案【最全】
无论是ASP.NET MVC和ASP.NET Web API跨域请求大致分成2种方式 第一种:web.config 配置 第二种:用HttpContext.Response.AppendHeader设 ...
- jQuery中Ajax+Spring MVC实现跨域请求
项目开发中,某个可独立.也可集成的子业务模块须要向外开放相关API接口,先说下项目本身使用了jersery来实现RESTful webservice以名词形式公布API.有意思的是在实际的操作中同事却 ...
- 解决vue axios跨域请求发送两次问题
解决vue axios跨域请求发送两次问题 参考文章: (1)解决vue axios跨域请求发送两次问题 (2)https://www.cnblogs.com/wordblog/p/12171875. ...
- Ajax跨域问题的两种解决方法
Ajax跨域问题的两种解决方法 参考文章: (1)Ajax跨域问题的两种解决方法 (2)https://www.cnblogs.com/pandang/p/5341250.html 备忘一下.
- 跨域请求的三种解决方案
跨域的三种解决方案 一.同源策略 二.jsonp 三.cors 四.proxy 一.同源策略 xhr对象无法跨域请求文件.通俗讲就是"浏览器"给js发送请求的限制,你只能给自己域名 ...
- 前端跨域请求get_解决前端跨域请求的几种方式
利用 JSONP 实现跨域调用 说道跨域调用,可能大家首先想到的或者听说过的就是 JSONP 了. 1.1 什么是JSONP JSONP 是 JSON 的一种使用模式,可以解决主流浏览器的跨域数据访问 ...
- 实现cookie跨域共享的两种方式
目录 跨域概念 为何限制跨域? 如何安全跨域?(如何实现跨域主要参考这里) 如何实现cookie跨域共享? cookie的概念 cookie的特性 跨多域共享cookie( a.com和b.com共享 ...
最新文章
- Nginx 做图片服务器
- [vue]饿了么的element-ui修改样式后不生效
- 2021-春季学习-智能车技术创新与实践-Lesson2
- 备忘之--apache下为站点添加错误页面
- cve 爬虫_好用的Google漏洞爬虫:Google Mass Explorer
- centos 安装mysql时错误unknown variable #39;defaults-file=/opt/redmine-2.6.0-2/mysql/my.cnf#39;...
- 让我们的标签语义化成为一种习惯好处多多
- Qt 给应用程序添加图标
- 数字化时代,规模不再是优势
- Memory存储引擎
- 电子元器件晶体二极管的识别和检测注意事项
- 邮件服务器pop110什么意思,pop pop3区别_25和110端口_imap和pop怎么设置
- javascript中(function(){})($)与$(function)的区别
- Python之quote() unquote()使用
- win7 计算机打不开搜狗,Win7系统中搜狗输入法不见了如何解决
- html布局flex有什么优势,css flex布局的优缺点是什么
- 街景影像分析入门(二)无需秘钥,抓取百度街景影像
- 2020cpu天梯图
- 【转】Power System 中基于 VIOS 的虚拟以太网实现
- java项目实体类方法找不到_报错,居然找不到实体类