Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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
Javascript VB.NET Web API CORS放置飞行前405错误_Javascript_Jquery_Vb.net_Asp.net Web Api_Cors - Fatal编程技术网

Javascript VB.NET Web API CORS放置飞行前405错误

Javascript VB.NET Web API CORS放置飞行前405错误,javascript,jquery,vb.net,asp.net-web-api,cors,Javascript,Jquery,Vb.net,Asp.net Web Api,Cors,我正在使用启用CORS的WEB API,我的GET和POST工作得非常好。然而,我的PUT不能通过CORS工作。我可以在Chrome中使用“Advanced REST”扩展,这很好。我在web配置中包含了各种设置 更新:我想指出,我的帖子是通过CORS工作的。如果我理解了这个过程,它会首先发送一个选项动词。那个选项动词可以通过,但PUT不能通过 更新2:看来看跌期权动词需要飞行前准备。我想我没有,我真的不知道怎么做 <remove name="OPTIONSVerbHandler" /&g

我正在使用启用CORS的WEB API,我的GET和POST工作得非常好。然而,我的PUT不能通过CORS工作。我可以在Chrome中使用“Advanced REST”扩展,这很好。我在web配置中包含了各种设置

更新:我想指出,我的帖子是通过CORS工作的。如果我理解了这个过程,它会首先发送一个选项动词。那个选项动词可以通过,但PUT不能通过

更新2:看来看跌期权动词需要飞行前准备。我想我没有,我真的不知道怎么做

<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<remove name="WebDAV" />
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Methods" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>

“放置api/OutfightModel/5
公共函数模型(ByVal id为整数,ByVal值为photomodelmanagerl.objOutfitModel)为布尔值
value.modelkey=id
Dim success作为布尔值=PhotoModelManager.UpdateObjoughtModelByKey(值)
回归成功
端函数


明确指定方法似乎可以解决问题

 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
 </httpProtocol>
C#当量

protected void Application_BeginRequest()
{
    if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
    {
        Response.Flush();
    }
}

你能展示你的控制器的Put方法吗?还有你的jquery代码使用的api url是什么?@Omar.Alani url在chrome控制台中。-问题中的控件已更新。禁止!我确信这会奏效。但仍然得到405错误。那么这个调用到哪里去了,我是在vb中调用它还是…?它转到Global.asax。我已经用VB.NET版本更新了我的答案。我现在在删除时也遇到了这个错误。删除是否需要不同的预飞行。它应该是相同的预飞行。
 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
 </httpProtocol>
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    If Request.Headers.AllKeys.Contains("Origin") And Request.HttpMethod = "OPTIONS" Then
        Response.Flush()
    End If
End Sub
protected void Application_BeginRequest()
{
    if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
    {
        Response.Flush();
    }
}