在實際應用中,跨域請求還是比較常見的,如何上介面直接支援跨域的訪問呢?
場景專案a有個介面用來獲取使用者列表,現在專案b也有個功能需要載入使用者列表。這兩個專案在兩個網域名稱下,至少埠好不同。使用angularjs中的$http發起請求。
}首先用postman模擬請求,驗證介面是正確的。
現在專案b想通過js來請求這個介面:
$http.get("http://localhost:49505/api/user/lists").success(function (response) );結果:
在webapi中為響應頭加上允許跨域訪問。如下所示
允許哪些url可以跨域請求到本域
response.headers.add("
access-control-allow-methods
", "
post
"); //
允許的請求方法,一般是get,post,put,delete,options
response.headers.add("
access-control-allow-headers
", "
x-requested-with,content-type
"); //
允許哪些請求頭可以跨域
return
response;}}
測試
結果
讓webapi支援CORS,可以跨域訪問
1.在nuget裡搜尋webapi找到下面的擴充套件,新增進專案裡。2.在global.asax中新增一行 protected void 3.在控制器頂部新增配置 enablecors origins headers methods public class default1controller a...
瀏覽器跨域訪問WebApi
在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...
瀏覽器跨域訪問WebApi
在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...