首先需要在原api接口的程序中在web.config添加如下节点(在<system.webServer>节点下)

<!--准许跨域请求--><httpProtocol><customHeaders><add name="Access-Control-Allow-Origin" value="*" /><add name="Access-Control-Allow-Headers" value="Content-Type" /><add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /></customHeaders></httpProtocol>

在原api接口程序中的Global.asax中添加如下代码

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

具体是什么原因请自行百度 

然后需要在原api继承ApiController的控制器中添加如下代码

 //准许跨域请求public string Options(){return null; // HTTP 200 response with empty body}

  然后该项目发布就可以了

其它项目调用的时候这里举2个例子,一个是前台ajax调用,一个是后台调用

1.前台调用

 <script src="/jq/jquery-1.7.min.js"></script><script type="text/javascript">window.onload = function get() {$.ajax({type: 'GET',url: 'http://网址/api/user/getInfo',dataType: 'json',success: function (data, textStatus) {//alert(data.Uid + " | " + data.UserName + "|" + data.Age);},error: function (xmlHttpRequest, textStatus, errorThrown) {}});}</script>

  2.后台调用

public static string request(string url){string strURL = url;System.Net.HttpWebRequest request;request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);request.Method = "GET";System.Net.HttpWebResponse response;response = (System.Net.HttpWebResponse)request.GetResponse();System.IO.Stream s;s = response.GetResponseStream();string StrDate = "";string strValue = "";StreamReader Reader = new StreamReader(s, Encoding.UTF8);while ((StrDate = Reader.ReadLine()) != null){strValue += StrDate + "\r\n";}return strValue;}

  

 protected void Page_Load(object sender, EventArgs e){string t = request("http://网址/api/user/getInfo");JsonData js = JsonMapper.ToObject(t);String name = (String)js["UserName"];Response.Write(name);//return Content(name);}

关于JsonData这里还需要添加一个引用LitJson.dll 

其实后台调用的话不需要在web.config和控制器中添加代码,直接就能调用,但需要在Global.asax中做配置

转载于:https://www.cnblogs.com/dushaojun/p/5358525.html

asp.net关于如何准许api跨域访问相关推荐

  1. ASP.NET Web API 跨域访问(CORS)要注意的地方

    一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...

  2. Web API 跨域访问

    JS调用接口最需要注意的就是跨域问题 在.net平台下使js跨域变得非常简单 1.在nuget中引用 Microsoft ASP.NET Web API 2.2 Cross-Origin Suppor ...

  3. asp.net core 系列之允许跨域访问2之测试跨域(Enable Cross-Origin Requests:CORS)

    这一节主要讲如何测试跨域问题 你可以直接在官网下载示例代码,也可以自己写,我这里直接使用官网样例进行演示 样例代码下载: Cors 一.提供服务方,这里使用的是API 1.创建一个API项目.或者直接 ...

  4. uni-app vue axios跨域访问问题

    uni-app vue axios跨域访问问题 为了解决这个axios跨域访问报错问题,查了很多资料,最终还是解决了,特此在这里记录下方法. main.js import axios from 'st ...

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

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

  6. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  7. 从实例入手学习使用vue+axios配置代理进行跨域访问百度音乐API

    场景 如果要使用axios直接进行跨域访问是不可以的,这是就需要配置代理了,为什么要配置代理呢? 原因就是因为客户端请求服务端的数据是存在跨域问题的,而服务器和服务器之间可以相互请求数据,是没有跨域的 ...

  8. REST API之前端跨域访问

    关键字:跨域访问,cross-origin, NodeJS, REST API, JavaScript, Access-Control-Allow-Origin 1.新建并运行一个 NodeJS的se ...

  9. ABP框架Web API跨域问题的解决方案

    ABP框架Web API跨域问题的解决方案 参考文章: (1)ABP框架Web API跨域问题的解决方案 (2)https://www.cnblogs.com/farb/p/ABPWebAPICros ...

最新文章

  1. c 输出中文乱码_pandas常用函数学习,从文件读取输出过程中学会处理数据
  2. 项目实施中应该注意的事项
  3. centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国
  4. django 的form登录 注册
  5. java的按钮点击事件_[转载]java处理按钮点击事件
  6. 《数据驱动安全:数据安全分析、可视化和仪表盘》一3.3 读入数据
  7. 偏最小二乘 非线性 matlab,求助:Matlab偏最小二乘程序哪错了
  8. django开源电子文档管理系统_「开源推荐」BookStack v2.8 发布,简洁美观的在线文档管理系统
  9. 如何保证交叉表编译器和目标系统版本一致_嵌入式系统词汇表
  10. Linux—编写shell脚本操作数据库执行sql
  11. 项目Alpha冲刺(团队)-第九天冲刺
  12. oracle当前用户创建的表不可见?
  13. 站点的安全防范都是后端的职责?非也,Web前端安全同样不可忽视
  14. 京香julia_百度百科
  15. edgewin10无法安装_如何解决Win10 Edge浏览器无法下载文件?
  16. Difference between UDP and TCP
  17. 漂泊的旅途,云淡风轻
  18. 萤石 python获取直播地址和画面
  19. java程序假死_分析一个常见的java多线程通信问题(假死现象)
  20. AT89S8253片内EEPROM字节读、字节写、页读、页写驱动代码、注意事项及注释

热门文章

  1. Jenkins中执行batch和Python
  2. CString,int,string,char*之间的转换(转)
  3. mysql中常见错误代码汇总
  4. 【堪萨斯州立大学】电子和计算机工程系智能能源研究室、硬件安全实验室招募博士,提供多个全额奖学金机会...
  5. 玩了5万局游戏,英伟达让GameGAN自己生成「吃豆人」,世界首创无需游戏引擎...
  6. CVPR 2020丨更精准的视频目标检测:基于记忆增强的全局-局部整合网络的方法
  7. 信号扫描_微观世界扫描电子显微镜(SEM)
  8. ACM Fellow发文抨击【同行评审】作弊轻松中顶会
  9. 霸榜!Google发布语义分割新数据集!
  10. 写给萌新们的Python安装及环境配置(anaconda,pycharm,GPU)教程