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

Ajax发布请求与授权头从. aspx页面给出错误选项405(方法不允许)

顾淳
2023-03-14

我有aspx页面,从那里我发送jQuery ajax帖子请求到我的网络服务。我的代码是:-

 $.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" />

发送请求后,我在检查元素(Chrome)中得到响应:-

远程地址:"我的远程地址"请求URL:"我的主机URL"请求方法: OPTIONS状态码: 405方法不允许

请求头视图源:-

接受:/Accept编码:gzip,deflate,sdch接受语言:en-US,en;q=0.8,es;q=0.6,fr;q=0.4,hi;q=0.2访问控制请求标题:接受、授权、内容类型访问控制请求方法:POST连接:保持活动主机:“我的主机URL”来源:测试引用人:/test/MyPage。aspx用户代理:Mozilla/5.0(windowsnt 6.1;WOW64)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/35.0。1916.153狩猎/537.36

响应标题视图源:-

访问控制允许标头:Origin、X-request-With、Content-Type、Accept访问控制允许方法:GET、POST、PUT、DELETE、OPTIONS访问控制允许Origin:*允许:POST缓存控制:无缓存内容长度:76内容类型:application/json;charset=utf-8日期:2014年7月8日星期二12:42:10 GMT过期:-1 Pragma:无缓存服务器:Microsoft IIS/7.5 X-AspNet-Version:4.0。30319

共有1个答案

郁隐水
2023-03-14

在MVC5WebAPI中,我首先在Web中添加了customHeader。跨域的配置文件,但未按预期获得输出。因此,我向控制器中的每个方法添加了[EnableCors(“,”,“*”),并获得了所需的输出。奇怪的但是得到了输出。

 类似资料:
  • 我有一个aspx页面,我将jquery ajax post请求发送到我的web服务。我已经将授权头添加到post调用中。我的代码是:- 在Web.config中,我添加了:- 响应头视图源:- access-control-allog-headers:origin,x-requested-with,Content-Type,Accept access-control-allog-methods:g

  • 这是我的jQuery代码,我用它来做一个Ajax请求: 这是我写的路线代码: 每当我在这个URL上发布ajax请求时,它都会给我一个405(不允许使用方法)。 为什么会发生这种错误?

  • 我正在使用ajax进行表单更新。当我在ajax中使用GET方法时,它工作得很好,但当我使用Post方法时,它抛出了错误405 method,这是不允许的。我正在本地主机上测试这个。我以前在localhost中做过,效果很好。顺便说一句,我用的是Laravel5.2。 这是我的ajax代码。 这是我在视图中使用的脚本 这是我的路线 当ajax函数和路由中的方法更改为GET时,它会打印在控制台中传递的

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

  • 该代码在我的本地开发环境中运行良好,但在我将其上载到服务器时,给出了一个异常。这个问题和这个问题的解决方案对我不起作用。 这是控制器。 这是routes文件中的相应条目。 这里是对URL的AJAX调用。 这就是示例测试用例的数据。 我如何克服这个错误,为什么这只发生在生产中? 值得注意的是,我在整个应用程序中还有其他对路由的AJAX调用,它们工作得很好。

  • 简化:在我的JS/PHP应用程序中,我有一个按钮。当用户单击按钮时,他得到1分,该分数通过jQuery AJAX/PHP保存在数据库中。 当然,用户现在可以调用发出AJAX请求的脚本,而无需单击按钮。有没有避免这种情况的最佳做法? 我使用AJAx是因为我不想重新加载页面。 更新:还有许多其他选择,用户可以如何赚取积分。理想情况下,我会有一个JS函数add_points(点),为用户添加点。但是我知