ASP.NET应用中AJAX请求指向错误主机的问题求助
解决ASP.NET AJAX请求404错误的方法
你的问题出在请求地址的两个核心错误:端口不匹配和缺少/api前缀,而其他请求能正常运行说明项目里有统一的地址配置逻辑,你可以按以下方式解决:
复用项目内置的基础地址变量
ASP.NET项目通常会在页面全局注入API基础地址(一般在布局页_Layout.cshtml中定义),比如类似这样的全局变量:var apiBaseUrl = '@Url.Content("~/api")'; // 或者包含完整主机信息的版本: var fullApiBaseUrl = '@string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/api"))';直接在你的AJAX代码里用这个变量拼接路径即可,示例:
$.ajax({ url: fullApiBaseUrl + "/foo/bar", type: "POST", data: JSON.stringify(data), contentType: "application/json; charset=utf-8", processData: false }).done(function (data) { }).fail(function (jqXHR, textStatus) { });如果找不到这个变量,直接参考项目里其他正常AJAX请求的写法,它们肯定复用了类似的全局变量或封装函数。
检查项目的AJAX全局配置
部分项目会通过$.ajaxSetup统一配置请求的基础地址,比如:$.ajaxSetup({ baseUrl: "https://localhost:44360/api/" });这种情况下你只需要保持
url: "/foo/bar"即可,但如果你的环境没配置这个全局项,就需要手动补上完整前缀。临时手动修正地址(不推荐长期使用)
如果找不到统一配置逻辑,临时解决可以直接写完整的正确请求地址:url: "https://localhost:44360/api/foo/bar"注意:这种硬编码方式在切换环境(如测试、生产)时会失效,优先建议用项目的统一配置方案。
内容的提问来源于stack exchange,提问作者Inglonias
相关产品推荐
相关产品推荐

