关于WebApi 跨域问题的解决的方式
最近在做WebApi 進(jìn)行開發(fā)的時(shí)候 一直會(huì)遇到跨域方面的問題那么如何進(jìn)行跨域問題其實(shí)非常的簡單。
1.一直在使用WebApi的時(shí)候總是遇到跨域的問題 那么 什么是跨域?跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。
注:解決web API跨域其實(shí)比較簡單,如果可以的話,如下的修改header即可,但是還是存在很多陷阱。首先必須保證做的更改API重新發(fā)布新的文件覆蓋原有文件。我們一直調(diào)不通,就是因?yàn)榘l(fā)布文件中的配置并沒有發(fā)生改變。另外使用Ajax調(diào)用的時(shí)候不能添加ContentType的配置。
同時(shí)使用服務(wù)端的CORS和客戶端jQuery.support.cors = true;就可以解決所有的問題了。
另外一個(gè)Get和Post之外的HttpMethod我是用參數(shù)傳進(jìn)去的,因?yàn)橛行g覽器不支持。
有的就是 CORS 跨域
讓mvc ?或者?webapi 支持CORS跨域的配置是:
在system.webServer節(jié)點(diǎn)上添加
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Max-Age" value="30"/>
<add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
</customHeaders>
</httpProtocol>
2. 服務(wù)端需要進(jìn)行添加
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials","true");
?
客戶端的jQuery:
$.ajax({
...
xhrFields: { //允許跨域訪問是添加cookie
withCredentials: true
},
...
}?
?
在做Web開發(fā)中,常常會(huì)遇到跨域的問題,到目前為止,已經(jīng)有非常多的跨域解決方案。
通過自己的研究以及在網(wǎng)上看了一些大神的博客,寫了一個(gè)Demo
首先新建一個(gè)webapi的程序,如下圖所示:
?
轉(zhuǎn)載于:https://www.cnblogs.com/LowKeyCXY/p/7002224.html
總結(jié)
以上是生活随笔為你收集整理的关于WebApi 跨域问题的解决的方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 织梦dedecsm系统企业简介类单栏目模
- 下一篇: Html----编写