WebAPI跨域设置

自定义webapi的路由规则,控制到action

跨域设置:(服务端)
webconfig文件中,system.webServer节点下添加

<!--跨域请求:三个配置信息-->
<httpProtocol>
<customHeaders>
<!--响应类型 (值为逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法)-->
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/>
<!--响应头设置(Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)-->
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
<!--如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源-->
<add name="Access-Control-Allow-Origin" value="*" />
<!--<add name="Access-Control-Allow-Origin" value="http://domain1.com, http://domain2.com" /> 设置允许跨域访问的网址-->
</customHeaders>
</httpProtocol>

Global.asax 文件中配置跨域

/// <summary>
/// 跨域设置
/// </summary>
protected void Application_BeginRequest()
{
//OPTIONS请求方法的主要作用:
//1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
//2、用来检查服务器的性能。如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。
if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
{
//表示对输出的内容进行缓冲,执行page.Response.Flush()时,会等所有内容缓冲完毕,将内容发送到客户端。
//这样就不会出错,造成页面卡死状态,让用户无限制的等下去
Response.Flush();
}
}

原文地址:https://www.cnblogs.com/jiayuanji/p/11211693.html

时间: 2024-08-01 17:51:41

WebAPI跨域设置的相关文章

C#进阶系列——WebApi 跨域问题解决方案:CORS

from:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2.场景测试 四.总结 正文 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. WebApi系列文章 C#进阶系列--WebApi接口测试工具:WebApiTestClient C#进阶系列

WebApi 跨域问题解决方案:CORS

注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. 一.跨域问题的由来 同源策略:出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容. 正是由于这个原因,我们不同项目之间的调用就会被浏览器阻止.

关于WebAPI跨域踩到的一点坑

最近在尝试前后端分离的WebAPI+AngularJS方案,在率先处理授权的时候,踩到了一点WebAPI跨域的坑,其实严格意义上来说也不算是坑吧,只是我自己对WebAPI不熟悉而已,这里我与大家分享一下. 先说一下我这边遇到的情况: 我是在做登录功能,使用的是微软的OWin提供的组件来实现 对于WebAPI跨域,你如果去百度或者谷歌,基本上会有以下两种答案: 一.在Web.config增加配置 在Web.config中system.webServer节点下面,增加配置项,设置输出的http he

WebAPI跨域处理

WebApi2跨域问题 一.跨域问题产生的原因:同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能. 现在所有支持JavaScript 的浏览器都会使用这个策略. 所谓同源是指,域名,协议,端口相同. 当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面 当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的, 即检查是否同源,只有和百度同源的脚本才会被执行. 由于同源策略的限制,JavaScript就产生了跨域的问题. 参考:同源

chrome跨域设置

最近在学习Angular路由,用版本为54.0的chrome运行示例中的html时出现禁止跨域现象,如下: google了下解决方法,转载如下,原文地址:http://www.cnblogs.com/cshi/p/5660039.html 做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提高了跨域设置的门槛,原来的方法不再适用了.下面笔者简单介绍一

chrome浏览器的跨域设置——包括版本49前后两种设置

做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提高了跨域设置的门槛,原来的方法不再适用了.下面笔者简单介绍一下新版本chrome的跨域设置方法. 版本号49之前的跨域设置 先介绍一下老方法,参考了一些网上的教程,其实直接在打开命令上加--disable-web-security就可以了. 具体做法为: 1.下载并安装好chorme浏览器后在桌面找

【JavaScript】JS跨域设置和取Cookie

cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值.本文主要JS怎样读取Cookie以及域的设置. AD: 在Javascript脚本里,一个cookie 实际就是一个字符串属性.当你读取cookie的值时,就得到一个字符串,里面当前WEB页使用的所有cookies的名称和值.每个cookie除了 name名称和value值这两个属性以外,还有四个属性.这些属性是:

windows &amp; mac chrome浏览器的跨域设置—包括版本49前后两种设置

做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提高了跨域设置的门槛,原来的方法不再适用了.下面笔者简单介绍一下新版本chrome的跨域设置方法. 版本号49之前的跨域设置 先介绍一下老方法,参考了一些网上的教程,其实直接在打开命令上加--disable-web-security就可以了. 具体做法为: 1.下载并安装好chorme浏览器后在桌面找

openlayers跨域设置后出现http status 500错误

最近需要弄一下地理信息系统,用到openlayers和geoserver.在解决跨域的时候出现如下问题.求解决方案啊. 问题如下: 附:已经安装了python27,环境变量path中也添加了:c:\Python27 参考了http://www.360doc.com/content/13/1005/23/7669533_319260563.shtml这篇文章设置后,打开http://localhost:8080/gis/cgi/proxy.cgi 得到的页面如下: openlayers跨域设置后出