Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
C#AngularJs HttpDelete不工作_C#_Angularjs_Asp.net Web Api - Fatal编程技术网

C#AngularJs HttpDelete不工作

C#AngularJs HttpDelete不工作,c#,angularjs,asp.net-web-api,C#,Angularjs,Asp.net Web Api,我正在使用C#WebAPI和AngularJs。如果我加上 <modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule" /> </modules> 我使用$resource从AngularJS调用web api。已删除webDavModule的web api中的web.config如下所示: <system.webServer> <mo

我正在使用C#WebAPI和AngularJs。如果我加上

<modules runAllManagedModulesForAllRequests="true">
 <remove name="WebDAVModule" />
</modules>
我使用$resource从AngularJS调用web api。已删除webDavModule的web api中的web.config如下所示:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="WebDAVModule"/>
  </modules>
  <handlers>
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    <remove name="TRACEVerbHandler" />
    <remove name="WebDAV"/>
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />    
  </handlers>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="X-Requested-With, accept, content-type" />
      <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
    </customHeaders>
  </httpProtocol>
</system.webServer>


你知道我为什么会遇到这个问题吗?

看起来你正在
localhost:
上托管AngularJs应用程序。您的Web Api必须使用包含您的
localhost:
的Access Allow Control源代码进行响应

当您在不同的端口上托管时,您的浏览器会发送带有HTTP选项的飞行前请求。Web API还必须允许HTTP选项

您还可以查看Chrome开发者工具控制台的内部。在这种情况下,Chrome必须将错误消息写入控制台。它回答您的HTTP 405,这意味着选项HTTP动词是不允许的,尽管它是在响应访问控制允许头。IIS添加HTTP头,但HTTP 405来自您的服务


例如,在我的OAuth/JWT服务实现中,由于Chrome+
localhost:
和飞行前请求的奇怪组合,我需要在开发环境中编写逻辑来响应HTTP200上的选项谓词。

似乎您正在
localhost:
上托管AngularJs应用程序。您的Web Api必须使用包含您的
localhost:
的Access Allow Control源代码进行响应

当您在不同的端口上托管时,您的浏览器会发送带有HTTP选项的飞行前请求。Web API还必须允许HTTP选项

您还可以查看Chrome开发者工具控制台的内部。在这种情况下,Chrome必须将错误消息写入控制台。它回答您的HTTP 405,这意味着选项HTTP动词是不允许的,尽管它是在响应访问控制允许头。IIS添加HTTP头,但HTTP 405来自您的服务


比如说,,在我的OAuth/JWT服务实现中,由于Chrome+
localhost:
和飞行前请求的奇怪组合,我需要在开发环境的选项动词上编写逻辑来响应HTTP 200。

是的,我喜欢api的web配置中的webapi.com和mywebApp.com,我确实有您在这一行中看到的选项。@Radu你能看看Chrome开发者工具控制台的内部吗。在这种情况下,Chrome必须将错误消息写入控制台。它回答您的HTTP 405,这意味着选项HTTP动词是不允许的,尽管它是在响应访问控制允许头。Headers添加IIS和405来自您的服务是的,我在api的web配置中有这样的webapi.com和mywebApp.com,我有您在这一行中看到的选项。@Radu您可以查看Chrome Developer Tools控制台的内部吗。在这种情况下,Chrome必须将错误消息写入控制台。它回答您的HTTP 405,这意味着选项HTTP动词是不允许的,尽管它是在响应访问控制允许头。标头添加IIS,405来自您的服务
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="WebDAVModule"/>
  </modules>
  <handlers>
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    <remove name="TRACEVerbHandler" />
    <remove name="WebDAV"/>
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />    
  </handlers>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="X-Requested-With, accept, content-type" />
      <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
    </customHeaders>
  </httpProtocol>
</system.webServer>