一、使用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 实现跨域请求的两种形式相关推荐

  1. vue 使用axios 出现跨域请求的两种解决方法

    vue 使用axios 出现跨域请求的两种解决方法 参考文章: (1)vue 使用axios 出现跨域请求的两种解决方法 (2)https://www.cnblogs.com/wangshengli5 ...

  2. springboot 添加允许跨域_springboot设置cors跨域请求的两种方式

    1.第一种: public class CorsFilter extends OncePerRequestFilter { static final String ORIGIN = "Ori ...

  3. ASP.NET MVC和ASP.NET Web API跨域请求问题解决方案【最全】

    无论是ASP.NET MVC和ASP.NET Web API跨域请求大致分成2种方式 第一种:web.config 配置 第二种:用HttpContext.Response.AppendHeader设 ...

  4. jQuery中Ajax+Spring MVC实现跨域请求

    项目开发中,某个可独立.也可集成的子业务模块须要向外开放相关API接口,先说下项目本身使用了jersery来实现RESTful webservice以名词形式公布API.有意思的是在实际的操作中同事却 ...

  5. 解决vue axios跨域请求发送两次问题

    解决vue axios跨域请求发送两次问题 参考文章: (1)解决vue axios跨域请求发送两次问题 (2)https://www.cnblogs.com/wordblog/p/12171875. ...

  6. Ajax跨域问题的两种解决方法

    Ajax跨域问题的两种解决方法 参考文章: (1)Ajax跨域问题的两种解决方法 (2)https://www.cnblogs.com/pandang/p/5341250.html 备忘一下.

  7. 跨域请求的三种解决方案

    跨域的三种解决方案 一.同源策略 二.jsonp 三.cors 四.proxy 一.同源策略 xhr对象无法跨域请求文件.通俗讲就是"浏览器"给js发送请求的限制,你只能给自己域名 ...

  8. 前端跨域请求get_解决前端跨域请求的几种方式

    利用 JSONP 实现跨域调用 说道跨域调用,可能大家首先想到的或者听说过的就是 JSONP 了. 1.1 什么是JSONP JSONP 是 JSON 的一种使用模式,可以解决主流浏览器的跨域数据访问 ...

  9. 实现cookie跨域共享的两种方式

    目录 跨域概念 为何限制跨域? 如何安全跨域?(如何实现跨域主要参考这里) 如何实现cookie跨域共享? cookie的概念 cookie的特性 跨多域共享cookie( a.com和b.com共享 ...

最新文章

  1. Nginx 做图片服务器
  2. [vue]饿了么的element-ui修改样式后不生效
  3. 2021-春季学习-智能车技术创新与实践-Lesson2
  4. 备忘之--apache下为站点添加错误页面
  5. cve 爬虫_好用的Google漏洞爬虫:Google Mass Explorer
  6. centos 安装mysql时错误unknown variable #39;defaults-file=/opt/redmine-2.6.0-2/mysql/my.cnf#39;...
  7. 让我们的标签语义化成为一种习惯好处多多
  8. Qt 给应用程序添加图标
  9. 数字化时代,规模不再是优势
  10. Memory存储引擎
  11. 电子元器件晶体二极管的识别和检测注意事项
  12. 邮件服务器pop110什么意思,pop pop3区别_25和110端口_imap和pop怎么设置
  13. javascript中(function(){})($)与$(function)的区别
  14. Python之quote() unquote()使用
  15. win7 计算机打不开搜狗,Win7系统中搜狗输入法不见了如何解决
  16. html布局flex有什么优势,css flex布局的优缺点是什么
  17. 街景影像分析入门(二)无需秘钥,抓取百度街景影像
  18. 2020cpu天梯图
  19. 【转】Power System 中基于 VIOS 的虚拟以太网实现
  20. java项目实体类方法找不到_报错,居然找不到实体类

热门文章

  1. Linux 0.11 实验环境搭建
  2. 硬盘和显卡的访问与控制(三)(含多彩的Hello)——《x86汇编语言:从实模式到保护模式》读书笔记03
  3. Head First JSP---随笔三
  4. Java throws子句
  5. 深入了解以太坊虚拟机
  6. Android O 7.0 启动优化的一些思路
  7. The new NDK support in Android Studio 1.3
  8. python怎么把cpu占满_如何增加python CPU使用率
  9. Qt,编译libcurl并且导入到库
  10. MATLAB 线型 颜色 和 标记点组合使用