【发布时间】:2019-05-16 03:27:26
【问题描述】:
这是一个 SpringBoot 网站。 html页面的url是http://xxxxx/trex/index/,索引页面中的javascript代码段如下
$(function(){
jQuery.ajax({
contentType:'application/json;charset=UTF-8',
type: "POST",
url: "getSignTypes",
cache: false,
dataType: "json",
success:function(data){
if(data !== 'NA'){
console.log(data);
$('#signType').combobox({
valueField:'id',
textField:'title',
editable:false,
data:data,
value:data[0].id
});
}
},
error:function(msg){
console.log(msg)
}
});
})
你可以看到我在这个 ajax 请求的 url 参数中使用了相对路径。我想既然是相对url,应该转换成http://xxxxx/trex/index/getSignTypes。我在本地对其进行了测试,是的,正如预期的那样http://localhost:8088/trex/index/getSignTypes。
但是当我将它部署到 UAT 时,我发现 url 被转换为http://hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/getSignTypes。索引部分不见了。
为什么 Ajax 中的相对路径在不同环境中的工作方式不同? ajax 代码完全一样。有什么线索我可以追踪找到差异吗?谢谢。
【问题讨论】:
-
相对 URL 始终始终相对于当前 URL。您报告的差异不能来自代码,只有 URL 有任何影响(并且代码间接影响 URL 的程度)。当您的 AJAX 请求启动时,您一定没有在
http://hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/index/上。 -
嗨@Amadan,'AJAX 请求已启动'是什么意思? javascript 代码在索引网页中,所以我猜“索引”是启动 AJAX 的地方。我错过了什么吗?
-
我的意思是 - 检查 URL。特别注意末尾是否有斜线。
-
@Amadan。谢谢。我在这里通过了 UAT 屏幕截图。这个ajax请求的引用地址是hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/index。所以我认为 index 是启动 ajax 的地方。对吗?
标签: javascript java relative-path