webapi跨域使用session

2022-04-08 13:39:39 字數 1442 閱讀 6671

在之前的專案中,我們設定跨域都是直接在web.config中設定的。

access-control-allow-origin如果還是設定成「*」就會報錯,當然是前端報錯。。。資料返回還有cookie/session都還是能存,但是報錯就不爽了啊。

於是,想著整改一下。

先上前端**。來個頁面遠端ajax請求去設定session。啥都沒有,就是點按鈕,發個請求。標記地方是必須加的

@

"set()

">設定session

@section scripts

然後再來個頁面,獲取上個頁面設定的session。

@

"get()

">獲取session

@section scripts

後台**

1.先允許webapi使用session

在global中加入如下**

public

override

void

init()

sender, eventargs e)

2.允許跨域。我這裡使用的是microsoft.aspnet.webapi.cors

先安裝包,然後在webapiconfig中加入如下**。等同於在web.config中設定

//

允許跨域

config.enablecors(new enablecorsattribute("

*", "

*", "

*"));

在請求方法上打上[enablecors]標籤,特指某一些網域名稱的訪問需要cookie/session

獲取session

/// ///

public

dynamic

getsession()};}

結果:

跨域共享cookie和跨域共享session

的父網域名稱.cookie4可以被提交,因為domain和cookie都嚴格保持一致.這裡需要注意的是,在瀏覽器看來.www.vinceruan.info不是blog.vinceruan.info 的父網域名稱,而vinceruan.info才是blog.vinceruan.info的父網域名稱,w...

Web API中使用CORS解決跨域

如果兩個頁面的協議,埠和網域名稱都相同,則兩個頁面具有相同的源,注 ie不考慮埠,同源策略不會阻止瀏覽器傳送請求,但是它會阻止應用程式看到響應。如下圖所示 cors是乙個w3c標準,全稱是 跨域資源共享 cross origin resource sharing 它允許瀏覽器向跨源伺服器,發出請求。...

webapi支援跨域訪問

在實際應用中,跨域請求還是比較常見的,如何上介面直接支援跨域的訪問呢?場景專案a有個介面用來獲取使用者列表,現在專案b也有個功能需要載入使用者列表。這兩個專案在兩個網域名稱下,至少埠好不同。使用angularjs中的 http發起請求。首先用postman模擬請求,驗證介面是正確的。現在專案b想通過...