gpt4 book ai didi

javascript - 如何在 javascript 中使用 RoutePrefix 获取 Web API 方法的有效 url

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:06 24 4
gpt4 key购买 nike

网络接口(interface)配置

'...
config.Routes.MapHttpRoute(
name:="DefaultApi",
routeTemplate:="api/{controller}/{id}",
defaults:=New With {.id = RouteParameter.Optional}
)
'...

全局.asax

Protected Sub Application_Start(sender As Object, e As EventArgs)
AreaRegistration.RegisterAllAreas()
GlobalConfiguration.Configure(AddressOf WebApiConfig.Register)
RouteConfig.RegisterRoutes(RouteTable.Routes)
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)
BundleConfig.RegisterBundles(BundleTable.Bundles)
End Sub

网络 API Controller

<Authorize()>
<RoutePrefix("api/customer")>
Public Class CustomerController
Inherits ApiController

<Route("saveName")>
<HttpPost>
Public Function saveName(value As MyTypeOfValues) As IHttpActionResult
'Do some staff
End Function

End Class

请求方式:

  var actionurl = "api/customer/saveName";
$.ajax(actionurl,
{
dataType: "JSON",
data: customerdata,
type: "POST",
contentType: "application/json; charset=utf-8",
error: function() { alert('error');}
}).done(function (result) { alert(result);});

使用 url = api/customer/saveName请求已发送到 http://localhost/MySiteName/Customer/ShowCustomer/api/customer/saveName
并得到错误 404

使用 url = /api/customer/saveName请求已发送到 http://localhost/api/customer/saveName
并得到错误 404

使用 url = http://localhost/MySiteName/api/customer/saveName我手动创建并由 Fiddler 发送 - 工作正常。

在相关问题的不同答案中,建议的 url 在我的情况下不起作用

问题:如何在 javascript/typescript 中为 Web API 请求生成有效的 url?

最佳答案

因为你想要 http://localhost/MySiteName/api/customer/saveName 你需要主机名后的所有内容......从尾部斜杠开始:

url =/MySiteName/api/customer/saveName

注意:我强烈建议研究生成 typescript 代码来调用这些代码,而不是在服务器上手动输入这些代码并在客户端复制 .只是一个您确实可以避免的故障点。

关于javascript - 如何在 javascript 中使用 RoutePrefix 获取 Web API 方法的有效 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32569147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com