javascript - 带参数的 WebApi 404 - 通过 javascript GET 调用

标签 javascript c# parameters routes asp.net-web-api

LocationsController 中的 WebApi 方法:

public async Task<IHttpActionResult> GetLocations(int id, long start, long end)
{
return Ok();
}

我尝试调用的电话 (GET):

https://api.com/Locations/GetLocations/34934/1/1
https://api.com/Locations/GetLocations?34934&start=1&end=1

因此:

factHttp.httpRequest('/locations/GetLocations', 'GET', vm.ID + '/' + start.getTime() + '/' + now.getTime()).then(function (_result) {
                vm.plots = angular.fromJson(_result.data);
            });

var _httpRequest = function requestCall(requestPartURL, requestType, requestPayload) {

            var _resultHttp = $http({
                url: apiURL + requestPartURL,
                method: requestType,
                data: requestPayload,
                headers: {
                    'Authorization': 'Bearer ' + localStorage.getItem('ACCESS_TOKEN')
                }
            }).success(function (response) {
                console.log("HTTP CALL SUCCESS");
                return {
                    result: 'SUCCESS',
                    resultObj: response,
                    errorCode: '',
                    errorDesc: ''
                }

            }).error(function (response) {
                console.log("HTTP CALL FAIL");
                console.log(response);

                return getErrorObj(response);
            });

            return _resultHttp;

        }

路由:

config.Routes.MapHttpRoute(
            "IdentWithRange",
            "{controller}/{action}/{id}/{start}/{end}"
        );

如果我将 Web api 方法更改为仅采用 (int id) 并调用 GetLocation/34934,它就可以正常工作。我在这里做错了什么?

我不断收到 404 错误。其中一些内容不是我自己写的(即 JS 的东西,因为我不擅长),但对我来说这是第一次使用任何类型的 api,我控制两端,我有点卡住了。 p>

最佳答案

您创建的路由记录将寻找以下路由

/api/controller/id/start/end

但是您正在尝试传递参数,而不是指定路线。

您不需要特殊的路由记录来处理多个参数。使用“标准”路由记录就足够了。

config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new 
{ 
  id = RouteParameter.Optional, action = "DefaultAction" 
});

关于javascript - 带参数的 WebApi 404 - 通过 javascript GET 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33891107/

相关文章:

javascript - 图像缩略图

javascript - 此特定动画的 javascript 问题

c# - Process.Start 在 .net 核心中给出文件未指定错误

C# 自动为参数选择最相关的方法

c# - C#中如何解决类名冲突问题

c - 传递数组而不是指向 C 中函数的指针

parameters - 有没有办法将解构绑定(bind)与 &rest 一起使用?

java - 使用参数排列进行测试的工具

javascript - 使用平面数组过滤 JSON 对象

javascript - 为什么 console.log() 在 createServer() 中输出两次?