Api跨域设置
程序员文章站
2022-04-14 16:21:09
跨域设置:(服务端) webconfig文件中,system.webServer节点下添加
跨域设置:(服务端) webconfig文件中,system.webserver节点下添加 <!--跨域请求:三个配置信息--> <httpprotocol> <customheaders> <!--响应类型 (值为逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法)--> <add name="access-control-allow-methods" value="get,post,put,delete,options"/> <!--响应头设置(content-type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)--> <add name="access-control-allow-headers" value="x-requested-with,content-type"/> <!--如果设置 access-control-allow-origin:*,则允许所有域名的脚本访问该资源--> <add name="access-control-allow-origin" value="*" /> <!--<add name="access-control-allow-origin" value="http://domain1.com, http://domain2.com" /> 设置允许跨域访问的网址--> </customheaders> </httpprotocol> global.asax 文件中配置跨域 /// <summary> /// 跨域设置 /// </summary> protected void application_beginrequest() { //options请求方法的主要作用: //1、获取服务器支持的http请求方法;也是黑客经常使用的方法。 //2、用来检查服务器的性能。如:ajax进行跨域请求时的预检,需要向另外一个域名的资源发送一个http options请求头,用以判断实际发送的请求是否安全。 if (request.headers.allkeys.contains("origin") && request.httpmethod == "options") { //表示对输出的内容进行缓冲,执行page.response.flush()时,会等所有内容缓冲完毕,将内容发送到客户端。 //这样就不会出错,造成页面卡死状态,让用户无限制的等下去 response.flush(); } } 请求不成功的原因: 1.路由不正确 2.请求的类型不匹配(get,post,put,delete) 3.参数个数和类型不匹配