【发布时间】:2023-04-07 11:13:02
【问题描述】:
我有 WEBAPI 项目和 AngularJS 客户端项目。 $http.get 调用工作正常,并且带有空数据的 $http.post 调用也正常工作,但数据抛出错误“405(不允许方法)”。我也启用了 CORS。请提供解决方案。
我在 web.config 中添加了以下内容
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<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="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
这是 WEBAPI
[HttpPost] public bool SubmitQuesiton(JObject 数据) { 返回 Factory.SubmitQuestion(data); }
这是 AngularJS 代码
data = JSON.stringify(data);
$http({
method: 'POST',
url: "http://localhost:53546/api/demo/SubmitQuesiton",
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
data: data
})
【问题讨论】:
-
请上网查看。这个问题有几十个答案取决于
asp.net-web-api。 -
@lin 尝试了几个小时的所有搜索,但无法解决
-
所以不要在你的问题中添加你现在尝试过的东西。
-
是否允许您的 Web API 针对 HTTP POST 进行调用?
-
@Speedy 请添加您迄今为止尝试过的内容。我真的认为您现在没有尝试过网络中提供的解决方案。
标签: angularjs post asp.net-web-api