我在本地服务器上建立了 DNN 9.2 网站。我使用HttpPOST将JSON发送到web.api。上周该工作正常,但是当我尝试从 Angular 4.1升级到4.3 时,该工作已停止。
当我尝试从我的应用程序或邮递员访问中访问api端点时,出现500错误并且没有消息。
这是我的控制器代码:
[HttpPost]
[ActionName("postPost")]
[AllowAnonymous]
public ApiResult UpsertPost([FromBody]Post post)
{
try
{
DO STUFF HERE
}
catch (System.Exception ex)
{
CATCH ERROR
}
}
这里有趣的是,这是可行的,我所做的只是更改为使用Angular 4.3中的新httpClient。我知道api端点正在接受请求。
此请求的授权已被拒绝。
我确保我的web.config文件中支持POST操作:
add name =“ ExtensionlessUrl-Integrated-4.0” path =“ *。” verb =“ GET,HEAD,POST,DEBUG,PUT,DELETE” type =“ System.Web.Handlers.TransferRequestHandler” preCondition =“ integratedMode,runtimeVersionv4.0”
我知道api端点受到了攻击,因为如果我使用GET而不是POST,则可以在web.pai代码中命中所有断点。 api服务还给出了给定的“对此请求已拒绝授权”。
有人可以帮我弄清楚为什么我的DNN api with post不接受请求吗?
答案 0 :(得分:1)
我知道您一个人就能得到答案,但是这些链接可能对您有用:
您可以在这里找到“角形投影”:DNN-Angular-6-7-CLI
以及将项目部署到哪里的DNN模块:SPA DNN9:DNN-9.x-SPA-and-Angular-6-7
所有DNN的ASCX:DNN-7.x-8.x-9.x-and-Angular-6-7
所有功能都可与dnn webapi和安全性配合使用。
我与客户一起使用了这些项目。
Matteo
答案 1 :(得分:0)
好的,所以这是我的错就不足为奇了。我已经将http请求的授权过程移至新的httpClient拦截器。我在拦截器函数中出错,该错误正在创建格式不正确的请求。修复拦截器后,API请求现在可以正常工作。
希望这可能对某人有所帮助