当前位置: 首页 > 知识库问答 >
问题:

Ajax post请求的授权头来自。aspx页面,错误为“选项405(方法不允许)”

易烨磊
2023-03-14

我有一个aspx页面,我将jquery ajax 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" />

响应头视图源:-

access-control-allog-headers:origin,x-requested-with,Content-Type,Accept access-control-allog-methods:get,POST,PUT,DELETE,OPTIONS access-controll-origin:*allow:POST cache-control:no-cache content-length:76 Content-Type:Charset=UTF-8日期:周二,2014年7月8日12:42:10 GMT过期:-1注释:无缓存服务器:Microsoft-IIS/7.5 X-ASPNET-版本:4.0.30319

共有1个答案

暨高洁
2023-03-14

在MVC5 Web Api中,我首先在Web.config文件中为跨域添加了customHeader,但没有得到预期的输出。因此,我在controller中的每个方法中添加了[enablecors("“,”“,”*“),并获得了所需的输出。奇怪!!但得到了输出。

 类似资料:
  • 我有aspx页面,从那里我发送jQuery ajax帖子请求到我的网络服务。我的代码是:- 在Web.config我补充说: 发送请求后,我在检查元素(Chrome)中得到响应:- 远程地址:"我的远程地址"请求URL:"我的主机URL"请求方法: OPTIONS状态码: 405方法不允许 请求头视图源:- 接受:/Accept编码:gzip,deflate,sdch接受语言:en-US,en;q

  • 请求头字段access-control-allow-headers本身在飞行前响应中是不允许的

  • 在$scope.url为locations.aspx/getData的情况下,它加载aspx页面的html页面,但不访问该方法。我可以使用 但是数据从不在视图端更新或绑定。html的一个示例是 在ajax调用之后,allItems数组中确实有一个项,但是视图从不更新。 内容类型:application/json;Charset=UTF-8 响应Headersview源cache-control:p

  • 我尝试使用HttpRequest(dart:html)执行POST请求,以调用一个使用基本身份验证保护的rest服务。 在执行POST调用之前,执行选项调用(由dart:html发出),而不使用authorization标头。这导致401未经授权的响应。 请求标头: Accept:*/* Accept-Encoding:gzip、deflate、SDCH Accept-Control-Reques

  • 问题内容: 我正在开发flask注册表格,但收到错误消息: 码: registration.html: 当我访问时,我收到错误消息。我究竟做错了什么? 问题答案: 这是因为在定义路由时仅允许POST请求。 当你在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。 使用 应该管用。

  • 下面是对我的Web API上的 方法的调用-方法中的第三行(我从ASP.NET MVC前端调用Web API): 是 。 以下是 : 以下是 : 最后,这是我的405回应: 下面是我的Web API项目中的webapi.config: 我曾尝试将传递到 到 和 的路径剥离,但没有成功。 有人知道为什么我会出现405错误吗? 更新 根据请求,下面是我的部门控制器代码(我将发布前端项目的部门控制器代码