前后端分離就意味着會跨域,可以定義Headers參數解決.NET中跨域問題。下面的方法本質上是一種。
方案一:修改IIS的HTTP響應標頭
后端部署后,在IIS中打開HTTP響應標頭:
右鍵添加以下三個響應頭:
Access-Control-Allow-Methods:OPTIONS,POST,GET Access-Control-Allow-Headers:x-requested-with,content-type Access-Control-Allow-Origin:value=*
方案二:手動在服務端Web.config中配置
在服務端Web.config中配置如下參數:
<configuration> …. <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" /> <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type" /> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>
方案三:在接口中分別添加
直接在方法中添加Headers。
[WebMethod] public void Hello() { //支持跨域, 改寫響應頭信息 HttpContext.Current.Response.Headers.Add("Access-Control-Allow-Origin", "*"); HttpContext.Current.Response.Headers.Add("Access-Control-Allow-Methods", " OPTIONS,POST,GET "); HttpContext.Current.Response.Headers.Add("Access-Control-Allow-Headers", "x-requested-with,content-type"); HttpContext.Current.Response.Write(JsonConvert.SerializeObject("Hello,GIS!")); HttpContext.Current.Response.End(); }