記錄最近一次的項目開發中遇到的問題和解決方式。在給移動端開放數據介面的時候,移動端開放人員反映部署到測試環境的介面調用訪問出現了問題,但是在單獨進行訪問是可以正常的。那麼,問題就來了。 根據查詢園子里大佬們的文章,瞭解到問題的根源。 問題的由來:該問題的出現是因為瀏覽器出於安全考慮,瀏覽器會限制腳本 ...
記錄最近一次的項目開發中遇到的問題和解決方式。在給移動端開放數據介面的時候,移動端開放人員反映部署到測試環境的介面調用訪問出現了問題,但是在單獨進行訪問是可以正常的。那麼,問題就來了。
根據查詢園子里大佬們的文章,瞭解到問題的根源。
問題的由來:該問題的出現是因為瀏覽器出於安全考慮,瀏覽器會限制腳本中發起跨域請求(有一個項目是使用的後臺做的請求,類似微信介面調用的方式,未出現改問題),JavaScript或者Cookie只能訪問同域下的資源-----所謂的“同源策略”,正是這個原因導致了移動端開發人員在H5頁面上使用腳本非同步訪問介面被瀏覽器阻止了。
問題的解決方案:針對ASP.NET Web API 只需在web.config文件下添加相關的配置內容就可以解決了
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
添加完配置後,基本上是可以解決跨域的問題了,當然還有CORS的跨域解決方案,只是還沒有去瞭解和使用過,這裡就不進行記錄了。