我有aspx页面,我将jquery ajax post请求发送到我的Web服务。 我已将授权标题添加到帖子调用中。我的代码是: -
$.ajax({
type: "POST",
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
},
url: " My Web Service URL ",
contentType: "application/json; charset=utf-8",
data: { HtmlText: data},
datatype: 'json',
success: function (data) {
alert(JSON.stringify(data));
}
});
在Web.config中我添加了: -
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Request-Headers" value="Authorization, Content-Type"/>
<add name="Access-Control-Allow-Headers" value="Authorization" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
</customHeaders>
</httpProtocol>
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<directoryBrowse enabled="true" />
发送请求后,我在inspect元素(Chrome)中收到响应: -
远程地址:&#34;我的远程地址&#34; 请求网址:&#34;我的主机网址&#34; 请求方法:选项 状态代码:405方法不允许
请求标题查看来源: -
接受: / 接受编码:gzip,放气,SDCH 接受语言:EN-US,EN; Q = 0.8,ES; Q = 0.6,FR,Q = 0.4,喜; Q = 0.2 Access-Control-Request-Headers:接受,授权,内容类型 访问控制请求-方法:POST 连接:保持活跃 主机:&#34;我的主机网址&#34; 来源:考试 引用者:/test/MyPage.aspx User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 35.0.1916.153 Safari / 537.36
响应标头查看源: -
Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept 访问控制允许方法:GET,POST,PUT,DELETE,OPTIONS 访问控制允许来源:* 允许:POST 缓存控制:无缓存 内容长度:76 内容类型:应用/ JSON;字符集= utf-8的 日期:星期二,08七月2014 12:42:10 GMT 到期日:-1 附注:无缓存 服务器:Microsoft-IIS / 7.5 X-ASPNET-版本:4.0.30319
答案 0 :(得分:0)
在MVC 5 Web Api中我首先在web.config文件中为跨域添加了customHeader,但是没有按预期获得输出。所以我在控制器和I中的每个方法中添加了[EnableCors(&#34; &#34;,&#34; &#34;,&#34; *&#34;)]获得所需的输出。奇怪!!但得到了输出。