Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax post请求,来自.aspx页面的授权头给出错误;选项405(不允许使用方法)";_Jquery_Asp.net_Ajax_Web.config Transform_Web Config - Fatal编程技术网

Jquery Ajax post请求,来自.aspx页面的授权头给出错误;选项405(不允许使用方法)";

Jquery Ajax post请求,来自.aspx页面的授权头给出错误;选项405(不允许使用方法)";,jquery,asp.net,ajax,web.config-transform,web-config,Jquery,Asp.net,Ajax,Web.config Transform,Web Config,我有一个aspx页面,从那里我将jQueryAjax post请求发送到我的web服务。 我已将授权标头添加到post调用中。我的密码是:- $.ajax({ type: "POST", beforeSend: function (xhr) { xhr.setRequestHeader("Authorization", "Bearer " + accessToken); }, url: " My Web

我有一个aspx页面,从那里我将jQueryAjax post请求发送到我的web服务。 我已将授权标头添加到post调用中。我的密码是:-

 $.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 element(Chrome)中得到响应:-

远程地址:“我的远程地址” 请求URL:“我的主机URL” 请求方法:选项 状态代码:405方法不允许

请求头视图源:-

接受:/ 接受编码:gzip、deflate、sdch 接受语言:en-US,en;q=0.8,es;q=0.6,fr;q=0.4,hi;q=0.2 访问控制请求头:接受、授权、内容类型 访问控制请求方法:POST 连接:保持活力 主机:“我的主机URL” 来源:测试 Referer:/test/MyPage.aspx 用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/35.0.1916.153 Safari/537.36

响应标题视图源:-

访问控制允许标头:来源、X请求、内容类型、接受 访问控制允许方法:获取、发布、放置、删除、选项 访问控制允许来源:* 允许:邮寄 缓存控制:没有缓存 内容长度:76 内容类型:application/json;字符集=utf-8 日期:2014年7月8日星期二12:42:10 GMT 过期:-1 Pragma:没有缓存 服务器:Microsoft IIS/7.5
X-AspNet-Version:4.0.30319在MVC5 Web Api中,我首先在Web.config文件中为跨域添加了customHeader,但没有得到预期的输出。因此,我向控制器中的每个方法添加了[EnableCors(“,”,“*”),并获得了所需的输出。奇怪的但是得到了输出