javascript - OPTIONS 405 (Method Not Allowed) regardless server sends Access-Control-Allow-Methods:OPTIONS, GET, HEAD, POST - St

I'm trying to make cross-domain request and my server is configured to send the following headers:

I'm trying to make cross-domain request and my server is configured to send the following headers:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:x-requested-with, Authorization
Access-Control-Allow-Methods:OPTIONS, GET, HEAD, POST
Access-Control-Allow-Origin:*

But when an OPTION request is made, I get OPTIONS 405 (Method Not Allowed) error.

Any Ideas what is the problem and how to fix it?

I'm trying to make cross-domain request and my server is configured to send the following headers:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:x-requested-with, Authorization
Access-Control-Allow-Methods:OPTIONS, GET, HEAD, POST
Access-Control-Allow-Origin:*

But when an OPTION request is made, I get OPTIONS 405 (Method Not Allowed) error.

Any Ideas what is the problem and how to fix it?

Share Improve this question asked Nov 8, 2012 at 11:14 Spadar ShutSpadar Shut 15.8k5 gold badges49 silver badges57 bronze badges 1
  • Possible duplicate of Access-Control-Allow-Origin Multiple Origin Domains? – kenorb Commented Nov 14, 2016 at 11:44
Add a comment  | 

3 Answers 3

Reset to default 9

I would suggest 2 solutions:

1) If you are using WebAPI you need to implement the option method that by convention should look like:

public class XXXController : ApiController
{
    // OPTION http-verb handler
    public string OptionsXXX()
    {
        return null; // HTTP 200 response with empty body
    }

    ...
}

2) If you are not using WebAPI try to understand which part of your code triggers the OPTIONS 405 (Method Not Allowed) error for the OPTION call. In that case I would check if trying to add to the Web.config file these <customHeaders/> that works:

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <!-- CORS temporary solution -->
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type, Authorization, Accept, X-Requested-With" />
        <add name="Access-Control-Allow-Methods" value="OPTIONS, TRACE, GET, HEAD, POST, PUT" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Your web server / application may been configured to send the mentioned response header for every HTTP GET verb and POST verb requests. But is your web server configured to handle HTTP OPTIONS Verb?

If you need more details, please provide the webserver and application programming technology you are using.

A little background, Browsers send an OPTIONS Request when you have a cross domain request with some custom request headers. This request is made before the actual request. The browser will make the actual request only if this request comes back with the response header you have mentioned.

// These OPTIONS request are called preflight requests -- generally browsers dev tools dont track them in their network tab.f

You would need to modify default OPTIONSVerbHandler. If using asp classic, that would mean adding following lines to your Web.config file:

    <handlers>
        <remove name="OPTIONSVerbHandler" />
        <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="None" />
    </handlers>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1738437922a4049282.html

相关推荐

  • 42.5 Exaflops:谷歌新TPU性能超越最强超算24倍,智能体协作协议A2A出炉

    机器之心报道编辑:泽南、+0第七代 TPU 来了。AI 算力又迎来了新的标杆。本周三,谷歌正式发布了旗下第七代张量处理单元(TPU)Ironwood。谷歌称,在大规模部署的情况下,这款 AI 加速器的计算能力能达到全球最快超级计算机的 24

    1小时前
    00
  • 资江ZJ-5890打印机驱动v11.2.0.0全面更新指南

    本文还有配套的精品资源&#xff0c;点击获取简介&#xff1a;打印机驱动程序是操作系统与打印机设备之间的关键接口&#xff0c;负责实现打印控制和作业执行。资江ZJ-5890打印机驱动程序的最新版本v11

    1小时前
    00
  • Flutter实现不依赖Firebase的多平台的Google登录

    GoogleConsole配置官网:点击创建OAuth2.0客户端,选择对应的应用类型。推荐的应用类型如下,多个应用类型可以共用一个client_id,也可以考虑创建多个client_id。平台应用类型AndroidWebiOSiOSMac

    1小时前
    00
  • App上线Google Play注意事项

    在海外上线 Android App 到 Google Play 商店,除了遵循一般的上架流程外,还需要特别注意一些针对不同国家和地区的因素,以确保你的 App 能够顺利发布并获得成功。以下是一些关键的注意事项。一、本地化 (Localiza

    1小时前
    00
  • 圈子系统源码:如何解决VUE页面刷新数据丢失问题

    <在Vue项目中,使用Vuex进行状态管理时,页面刷新导致数据丢失是一个常见的问题。这是因为Vuex的状态是存储在内存中的,而当页面刷新时,浏览器会重新加载页面,导致Vuex中的状态被重置。为了解决这个问题,我们可以采用以下几种方法:

    1小时前
    00
  • 推理模型升级浪潮下,Agentic RAG 如何借力 DeepSeek 实现知识革命?

    导语 | 近年来,随着大语言模型(LLM)的快速发展,检索增强生成(RAG,Retrieval-Augmented Generation)技术逐渐成为大模型落地的重要路径之一。然而,如何将推理能力注入 RAG,并在复杂场景中实现高效、稳定的

    1小时前
    00
  • 当 AI 邂逅自动化,从测试到智能,代码里的狂飙时代

    一、背景在当今科技飞速发展的时代,人工智能(AI)已经成为推动各个行业进步的核心力量。在软件开发、数据分析等众多领域,AI 的应用无处不在,它不仅显著提高了工作效率,还为系统赋予了更高的智能水平。自动化测试作为软件开发流程中的关键环节,能够

    50分钟前
    00
  • 算法训练之动态规划(二)

    不同路径不同路径这个题目需要讨论的是由左上角到右下角的路径总数~我们可以按照动态规划的步骤来进行一步步分析~1、状态表示 结合这里的题目要求+经验:我们这里的状态表示dp[i][j]到达该位置的路径总数2、状态转移方程

    45分钟前
    00
  • 初识Redis · 简单理解Redis

    前言:本文只是作为Redis的一篇杂谈,简单理解一下Redis为什么要存在,以及它能做到和它不能做到的事儿,简单提及一下它对应的优势有什么,不足有什么之类的。总之,本文只是Redis入门的杂谈,咱们看看即可~分布式系统首先提到Redis,咱

    38分钟前
    00
  • NotebookLM:基于 Gemini 的个性化 AI 研究助理

    在信息爆炸的时代,如何高效地处理、理解和利用海量信息成为了研究人员、学生和创意工作者面临的共同挑战。谷歌推出的 NotebookLM,正是为了应对这一挑战而生的强大工具。它不仅仅是一个笔记应用,更是一个基于先进 AI 技术的个性化知识库,旨

    35分钟前
    00
  • ubuntu系统使用指南

    安装Ubuntu1.1 下载ISO镜像访问Ubuntu官网(ubuntudownload)选择适合版本(推荐LTS长期支持版)下载ISO文件1.2 制作启动盘 使用Rufus(Windows)或dd命令(Linux)选择下载的ISO文件

    21分钟前
    00
  • 【今日三题】小乐乐改数字 (模拟)十字爆破 (预处理+模拟)比那名居的桃子 (滑窗前缀和)

    小乐乐改数字 (模拟)小乐乐改数字首先我们需要知道这个整数的长度来一位一位遍历,最容易想到的是通过模10除10操作用数组存储每一位;可以以 string 类型读入整数,直接操作字符串,最后还可以用 stoi 函数自动去掉有前导0的情况。代码

    20分钟前
    00
  • 【Linux】用C++实现UDP通信:详解socket编程流程

    协议(Protocol)协议 是计算机或通信系统中,不同实体(如设备、程序、服务等)之间进行交互和通信时,共同遵循的一套规则和标准。它定义了数据的格式、传输方式、错误处理、安全机制等,确保通信双方能够正确理解彼此的信息并完成协作。协议的核心

    18分钟前
    00
  • 【Linux】线程控制函数

    一、线程函数1、线程ID获取线程ID,线程ID的名字叫做tid代码语言:javascript代码运行次数:0运行复制#include <pthread.h>pthread_t pthread_self(void);返回值:该函

    17分钟前
    00
  • 替换WIN键和Ctrl键

    用惯了Mac&#xff0c;最近切换到了win系统的电脑&#xff0c;老是习惯按win键&#xff0c;所以就想着把系统的win键和ctrl键对调。然后网上就找到可如下方法&#xff1a; 按下winr&

    16分钟前
    00
  • win10写的程序在win7下面崩溃的问题 CLR20r3 MissingMethodException

    win10写好的程序安装到win7&#xff0c;运行一会就崩溃了。程序已经对异常进行处理&#xff0c;并没有catch里面throw未处理的代码。 但程序就是不提示异常&#xff0c;直接崩溃。 问题签名为&

    16分钟前
    00
  • 【Vue #2】脚手架 &amp; 指令

    一、脚手架脚手架:一个保证各项工作顺利开展的平台,方便我们 拿来就用,零配置1. Vue 代码开发方式相比直接 script 引入 vue 源码,有没有更好的方式编写vue代码呢?① 传统开发模式:基于html文件开发Vue,类似jQuer

    12分钟前
    00
  • Google发布A2A协议对标MCP协议,AI Agent互联网协议之争正式打响!

    Google发布A2A开放协议,AI Agent互联网协议之争正式打响!最近,科技界迎来了一场重磅新闻——Google发布了全新的开放协议——A2A开放协议。这个协议的发布,直接冲击了MCP(Microsoft Cloud Platform

    6分钟前
    00
  • Python 实现如何电商网站滚动翻页爬取

    一、电商网站滚动翻页机制分析电商网站如亚马逊和淘宝为了提升用户体验,通常采用滚动翻页加载数据的方式。当用户滚动页面到底部时,会触发新的数据加载,而不是一次性将所有数据展示在页面上。这种机制虽然对用户友好,但对爬虫来说却增加了爬取难度。以淘宝

    31秒前
    00

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信