一、用visual studio 2015 创建一个 web api 应用程序。记住这是一个 web api 应用。jquery
二、新建一个web api 。web
三、用C#访问,代码以下:[没有问题,返回正确] json
var requestJson = JsonConvert.SerializeObject(args); HttpContent httpContent = new StringContent(requestJson); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var httpClient = new HttpClient(); var responseJson = httpClient.PostAsync("http://webml01.dxqas.com/datacenter/api/affiliate/queryproduct", httpContent) .Result.Content.ReadAsStringAsync().Result;
但若是用jquery去调用web api 则会出现:api
<Error><Message>The requested resource does not support http method 'OPTIONS'.</Message></Error>
解决方法以下:
一、编写一个 web api 的基类如 BaseApi.cs 继承自 ApiController 在BaseApi.cs中添加以下代码
public HttpResponseMessage Options() { return new HttpResponseMessage { StatusCode = HttpStatusCode.OK }; }
二、在 web.config 中<system.webServer> 节点中添加以下配置app
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>spa
完成以上两部,再用jquery去调用。则不出再报错。但F12看请求时会发现有两个请求产生。code