Javascript VB.NET Web API CORS放置飞行前405错误
我正在使用启用CORS的WEB API,我的GET和POST工作得非常好。然而,我的PUT不能通过CORS工作。我可以在Chrome中使用“Advanced REST”扩展,这很好。我在web配置中包含了各种设置 更新:我想指出,我的帖子是通过CORS工作的。如果我理解了这个过程,它会首先发送一个选项动词。那个选项动词可以通过,但PUT不能通过 更新2:看来看跌期权动词需要飞行前准备。我想我没有,我真的不知道怎么做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
<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();
}
}