關於跨域問題(包括端口和域名跨域)php
一、C#語言跨域 我估計任何語言在返回頭加這個均可以解決跨域問題 web
//徹底跨域設置 包括跨域名和端口 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); //跨域名 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "*");//跨端口 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); //HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");容許的請求類型 var data = HttpContext.Current.Request.Form["data"].ToString(); HttpContext.Current.Response.ContentType = "text/plain"; HttpContext.Current.Response.Write(data);
二、PHP跨域 同一個思想ajax
<?php $data = $_POST["data"]; //徹底跨域設置 包括跨域名和端口 header("Access-Control-Allow-Origin:*"); //跨域名 header("Access-Control-Allow-Headers:*"); //跨端口 header("Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS"); //容許的請求類型 header('Content-Type:text/plain'); echo $data;
三、webApi跨域訪問跨域
/// <summary> /// 跨域解決 /// </summary> /// <param name="httpResponseMessage"></param> /// <returns></returns> protected HttpResponseMessage crossDomain(HttpResponseMessage httpResponseMessage) { httpResponseMessage.Headers.Add("Access-Control-Allow-Origin", "*"); httpResponseMessage.Headers.Add("Access-Control-Allow-Headers", "*"); httpResponseMessage.Headers.Add("Access-Control-Allow-Methods", "GET, POST"); return httpResponseMessage; }
或者在Web.config配置自動發送默認請求頭 在<system.webServer> </system.webServer>之間ide
<system.webServer> <!--跨域配置--> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="*" /> <add name="Access-Control-Allow-Methods" value="GET, POST" /> </customHeaders> </httpProtocol> <!--跨域配置-->
ajax跨域只要在返回頭加上這三就OK了spa
Access-Control-Allow-Origin:*
Access-Control-Allow-Headers:*
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONScode