昨天根據項目組前端開發工程師反映,在瀏覽器端無法直接使用ajax訪問后台接口獲取數據,根據他的反映,我查閱了相關跨域的解決方案:
一:使用jsonP,但是jsonP只能使用GET請求,完全不符合我項目的情況,於是繼續找,找到了————
二:WEBAPI.CORE,引用幾篇文章(http://www.cnblogs.com/OpenCoder/p/6890703.html,http://www.cnblogs.com/OpenCoder/p/6893052.html)
詳細介紹了跨域的原因以及解決方法,下面就我使用的時候遇到的問題進行說明
使用Nuget下載程序包Microsoft.AspNet.WebApi.Cors 5.2.3.0,在使用過程中,發現這個版本只能兼容.net4.5以上的版本,由於我的項目之前建的是4.0,因此修改屬性為4.5,修改之后,很多的.dll版本與4.5不對應,於是更新了那些dll引用,這里特別要注意Microsoft.Net.Http這個dll,應該與cors的版本一致,這些東西都修改好了以后,編譯通過,但是在加載路由的拋異常了,
異常為:安全透明方法“System.Web.Http.GlobalConfiguration.get_Configuration()”嘗試。。。。
找了很多的方法,涉及到很多的知識,最終采用了這個帖子解決了跨域訪問的問題(https://stackoverflow.com/questions/18476370/how-do-i-resolve-the-error-attempt-by-security-transparent-method-system-web-h)
使用install-package 'Microsoft.AspNet.WebApi.OData -pre