解决办法
在web.config文件中加入下面的节点来配置。
<system.webServer> <directoryBrowse enabled="false" /> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="*" /> </customHeaders> </httpProtocol> </system.webServer>
事情起因
我的同事创造了一种用WebForm写WebApi的方法。
怎么写的呢?
建一个文件叫做api.aspx。
然后再Page_Load事件中:
能拿到请求的地址栏参数;
string method = this.Request.QueryString["method"]; string openid = this.Request.QueryString["openid"];
能拿到请求的body;
string ps = new StreamReader(this.Request.InputStream).ReadToEnd();
还能响应;
else if (method.ToLower() == "app_yushoudan.get") { var res = new YuShouDan().get(psObj).ToJson(); this.Response.Write(res); Log(method, ps, res); this.Response.End(); return; }
这些接口给写微信前端的同事调用是没有问题的。
但是这两天我想用它来练习下浏览器前端,结果就发现了跨域的问题。
一开始没有找到解决办法,于是我建了一个.NET Core2.1 WebApi项目来提供练习用的接口,它配置允许跨域是很简单的。
现在找到了配置的方法,特此记录。