繁体   English   中英

Angular JS在IIS上托管后未调用JsonResult

[英]Angular JS not calling JsonResult After Hosting on IIS

我正在使用Angular Js在.NetCore中创建一个Web应用程序,它在localhost上的测试中工作正常。 但是,当我将其托管在IIS服务器中时,它无法调用JsonResult方法

以下是我的代码[Angular Js]

         $http({
                url: '/Home/GetDetails',
                method: "GET",
                params: {
                    StaffCode: $scope.StaffCode,
                }
            }).then(function mySuccess(response) 
                {
                }, function myError(response) {
                $window.alert('An Error Occurred , Try Again Later');
            });

它在localhost上工作正常,但是在IIS服务器上托管后,对GetDetails Jsonresult的调用以错误的方式发生

例如 :

http://10.1.10.10/ApplicationName/Home/Index是应用程序的网址

并调用GetDetails jsonresult是

http://10.1.10.10/Home/GetDetails [提供错误404:找不到文件]

代替http://10.1.10.10/ApplicationName/Home/GetDetails

我试过了

url: '~/Home/GetDetails',

url: './Home/GetDetails',

但是它似乎没有调用Jsonresult方法的正确地址

url的正确格式是什么?

这里的问题是,您已经硬编码了URL,如果应用程序托管在某个目录中而不是根文件夹中,则该URL不起作用,因此解决方案是始终使用Url.Action帮助程序方法生成正确的相对URL,例如:

url: '@Url.Action("GetDetails","Home")'

这将确保生成正确的url,而不管应用程序托管了多少嵌套子目录。

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM