asp.net web api 跨域,带cookie
官网上有一个介绍
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
但是只支持4.5,如果是4.0开发,需要自己手动了。
默认是不支持跨域的,如果你从一个域访问另一个域的api
虽然是200,但是什么东西都没有返回

在api的响应头上加入
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

则可以被跨域访问。
如果希望带cookie信息,则ajax请求时,需要
$.ajax({
type: "get",
url: "http://localhost:6836/api/values",
xhrFields: { withCredentials: true }
})

此时,请求头中会带cookie
如果服务器不做任何设置

又会出现200,但是没有收到值的情况
需要在响应头中加入
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials", "true");
但是还是会发生200,没有返回值
通过对比ms提供的和自己写的发现


我们自己写的指定的是*,而ms是具体的地址。把*改成具体的地址,则ok
地址可以通过
Request.Headers.GetValues("Origin")
获取请求头中的信息
以上方式,只适合夸子域的请求,如果是根域都跨了,他是不会在头中添加cookie的。
这个时候,我们可以使用一个自定义头来发送一些内容。
在发送带有自定义头的请求时,会先以一个Options method发起请求,查看是否允许子定义的头
这个时候,服务端首先要允许options method,然后
Headers.Add("Access-Control-Allow-Headers","*");
同样注意把*替换成你的自定义头
可以添加Access-Control-Allow-Methods头来设置允许的method
最后再jquery中
$.ajax({
…headers:{name:value}…
})
asp.net web api 跨域,带cookie的更多相关文章
- ASP.NET Core Web API 跨域(CORS) Cookie问题
身为一个Web API,处理来自跨域不同源的请求,是一件十分合理的事情. 先上已有的文章,快速复制粘贴,启用CORS: Microsoft:启用 ASP.NET Core 中的跨域请求 (CORS) ...
- asp.net web api 跨域问题
缘起 以前在asp.net mvc时代,很少出现跨域问题 自从使用了asp.net web api + angular (1/2)之后,开始有跨域问题了. 简单普及下跨域: 我的理解是只要是前台页面与 ...
- ASP.NET web api 跨域请求
1.学习文章:AJAX 跨域请求 - JSONP获取JSON数据 1.asp.net代码 参考文章:http://www.sxt.cn/info-2790-u-756.html (1).增加CorsH ...
- ASP.NET Web API 跨域访问(CORS)
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
- ASP.NET Web API 跨域访问(CORS)要注意的地方
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
- ASP.NET Web API 跨域访问
自定义特性 要在WebApi中实现JSONP,一种方式是实现自定义特性 http://stackoverflow.com/questions/9421312/jsonp-with-asp-net-w ...
- 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie
原文:[ASP.NET Web API教程]5.5 ASP.NET Web API中的HTTP Cookie 5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.N ...
- Web Api跨域访问配置及调用示例
1.Web Api跨域访问配置. 在Web.config中的system.webServer内添加以下代码: <httpProtocol> <customHeaders> &l ...
- 跨域带cookie失效的解决方案
在webpack的tableproxy那儿配置完跨域以后,想给cookie添加domain以便请求的时候带上cookie domain为localhost,cookie不会失效,但是一但改成baidu ...
随机推荐
- 第三章 CopyOnWriteArrayList源码解析
注:在看这篇文章之前,如果对ArrayList底层不清楚的话,建议先去看看ArrayList源码解析. http://www.cnblogs.com/java-zhao/p/5102342.html ...
- 基于Spring MVC的web应用随应用启动而加载
写个类实现org.springframework.context.ApplicationContextAware接口即可. 但是如下的程序会在启动时加载两次: @Controller public c ...
- Eclipse (JavaEE版)中修改web项目的访问路径
访问路径,也就是指在浏览器中访问该web系统时的根路径,比如http://localhost:8080/xxxx/index.jsp 这里的xxxx. 也就是request.getContextPa ...
- template(定义类的模板关键字)
template<typename T1> template<class T1> 在一般情况下二者使用方式是一样的,但有一个特例:就是当T1是一个类的时候,而这个类又有子类时候 ...
- Code Chef TSUM2(动态凸包+点分治)
题面 传送门 题解 真是毒瘤随机化算法居然一分都不给 首先这种树上的题目一般想到的都是点分 我们考虑如何统计经过当前点的路径的贡献,设当前点\(u\)在序列中是第\(c\)个,那么一条路径的贡献就是 ...
- django 获取request请求对象及response响应对象中的各种属性值
django request对象和HttpResponse对象 HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外) HttpRequest.scheme 请求方案 ...
- 简单的卷积神经网络(CNN)的搭建
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现.与普通神经网络非常相 ...
- Kafka运行环境优化实践
Kafka高性能的特点及条件 Kafka是一个高吞吐量分布式消息中间件,并且提供了消息的持久化功能.其高可行有两个重要的特点: 利用了磁盘连续读写性能显著高于随机读写性能的特点 并发,将一个topic ...
- C#里面const和readonly
一.const关键字限定一个变量不允许被改变. 使用const在一定程度上可以提高程序的安全性和可靠性. 1.用于修改字段或局部变量的声明,表示指定的字段或局部变量的值是常数,不能被修改. 2.常数声 ...
- iOS-消除CocoaPods内容警告
前言 2018年2月26日 农历正月十一 星期一 今天就想更新下博客,内容不多,心情复杂: 突然想吟诗一首: 其实,我是一个善良的人: 其实,我是一枚... 算了,还是说正事吧 消除CocoaPods ...