OPTIONS "http:192.200.2.2/example.com/api/value" 405(不允许的方法)& prelight 的响应具有无效的 HTTP 状

Posted

技术标签:

【中文标题】OPTIONS "http:192.200.2.2/example.com/api/value" 405(不允许的方法)& prelight 的响应具有无效的 HTTP 状态代码 405【英文标题】:OPTIONS "http:192.200.2.2/example.com/api/value" 405(Method Not Allowed) & response for prelight has invalid HTTP status code 405 【发布时间】:2018-06-02 22:36:09 【问题描述】:

我想用 angularjs 从 html 页面调用 API,我已经在 html 页面中编写了这个脚本代码

$http(
    method:'POST',
    url:'http:192.200.2.2/example.com/api/value',
    headers:
        X-EXAMPLE.COM-WEB-APP-API-KEY:"ghdhfghgfhdfdf76878678687567",
        X-EXAMPLE.COM-WEB-APP-API-SECRET:"hfghdfghdhfghdf76878678687567",
        Content-Type:"application/json"
     
 );

我已经在api的web.config中写了,

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
        <httpProtocol>
            <customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
                <add name="Access-Control-Allow-Headers" value="*" />
                <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
           </customHeaders>
       </httpProtocol>
       <security>
           <requestFiltering>
               <verbs>
                   <add verb="OPTIONS" allowed="true" />
               </verbs>
           </requestFiltering>
       </security>
 </system.webServer>

没有标题它调用一个api,但有标题它不调用一个api & 我不能使用任何后端代码

【问题讨论】:

***.com/questions/26649361/… 请注意,这肯定是服务器问题,而不是客户端问题。请调整您帖子的标签以反映服务器端使用的技术。 整个代码在没有标头的情况下工作,但是当标头带有 content-type: application/Json 时,它会给出上述错误 标题: X-EXAMPLE.COM-WEB-APP-API-KEY:"ghdhfghgfhdfdf76878678687567", X-EXAMPLE.COM-WEB-APP-API-SECRET:"hfghdfghdhfghdf76878678687567", 内容类型: 应用程序/json 【参考方案1】:

由于标题名称包含符号(点和连字符),请尝试将它们封装在“”中,以便它们像单个字符串一样。

$http(
    method:'POST',
    url:'http:192.200.2.2/example.com/api/value',
    headers:
        "X-EXAMPLE.COM-WEB-APP-API-KEY": "ghdhfghgfhdfdf76878678687567",
        "X-EXAMPLE.COM-WEB-APP-API-SECRET": "hfghdfghdhfghdf76878678687567",
        "Content-Type": "application/json"
     
 );

【讨论】:

以上是关于OPTIONS "http:192.200.2.2/example.com/api/value" 405(不允许的方法)& prelight 的响应具有无效的 HTTP 状的主要内容,如果未能解决你的问题,请参考以下文章

js中给select 添加options

360网站安全提示"X-Frame-Options头未设置"怎么解决

spark.read.options(header=True, delimiter="|").csv("mycsv") PySpark 中的 3 行花费了太多时

下列代码中data-options属性是啥意思

vue 中 this.$options.data() 重置

ng-options 值显示为 value="object:id" 而不是 value="id"