Javascript URL 字符串在 运行 grunt 之后添加 %20 (space)
Javascript URL string adding %20 (space) after running grunt
TLDR;
固定如下
selectedValue = selectedValue.replace(/\s+/g, '')
感谢:Richard Macarthy 和 Aaron Digulla 的答案,这让我找到了正确的答案。
请注意,G运行t 似乎出于某种原因添加了这个空格。修复非常简单...
原始问题
我有一个 JSON 请求,它获取 JSON 文件的内容,用于使用 d3.js.
进行数据可视化
这在本地一切正常,但是当我 运行 g运行t 构建 URL 字符串时,不知从哪里注入了 %20
...
这是字符串在 I 运行 G运行t:
之前的样子
d3.json("json/wards-info/"+selectedValue+"-wards-data.json", function(error, newDatas) {
newData = newDatas;
newWardsData = newWardsDatas;
drawMap(newData, newWardsData);
});
计算结果为:
http://localhost:8080/app/json/wards-info/liverpool-ward-data.json
在我 运行 G运行t 构建计算后 URL 字符串更改为:
http://localhost:8080/dist/json/wards-info/liverpool%20-ward-data.json
如您所见,它似乎在 liverpool-ward
之间添加 %20
这是g运行t的原因,还是其他原因?
%20
通常表示HTML中的一个space URL编码,尽量确保你的输出中没有space。
你可以使用这样的东西来帮助:
string.replace(/ /g,'')
去除白色 space。其中字符串是你的 URL.
或者试试这个:
.replace(/%20/g,'')
只需检查您的 selectedValue 值。 -
字符前有一个 space。要么删除它,要么在使用它之前调用 trim。
应该可以解决你的问题。
可能是因为别的原因。添加 %20
是因为 URL 转义规则(d3.json()
可能适用;Grunt 在这里不应该有影响)但它的意思是 selectedValue
以 space字符。我在您的评论中看到,您 100% 确定没有,但如果那是真的,那么 URL 中就不会有 %20
。计算机不会只是为了好玩而添加东西,总是有原因的。
所以我的建议是在运行时调试代码以查看变量包含的内容,然后在整个代码库中搜索 -wards-data.json
(因为代码中可能有第二个位置您忘记了).
如果这不起作用,那么你必须告诉我们更多关于 Grunt 配置的信息(你在压缩脚本,混淆吗?你安装了插件吗?)同时向我们展示 Grunt 生成的代码您的意见。
TLDR;
固定如下
selectedValue = selectedValue.replace(/\s+/g, '')
感谢:Richard Macarthy 和 Aaron Digulla 的答案,这让我找到了正确的答案。
请注意,G运行t 似乎出于某种原因添加了这个空格。修复非常简单...
原始问题
我有一个 JSON 请求,它获取 JSON 文件的内容,用于使用 d3.js.
进行数据可视化这在本地一切正常,但是当我 运行 g运行t 构建 URL 字符串时,不知从哪里注入了 %20
...
这是字符串在 I 运行 G运行t:
之前的样子d3.json("json/wards-info/"+selectedValue+"-wards-data.json", function(error, newDatas) {
newData = newDatas;
newWardsData = newWardsDatas;
drawMap(newData, newWardsData);
});
计算结果为:
http://localhost:8080/app/json/wards-info/liverpool-ward-data.json
在我 运行 G运行t 构建计算后 URL 字符串更改为:
http://localhost:8080/dist/json/wards-info/liverpool%20-ward-data.json
如您所见,它似乎在 liverpool-ward
%20
这是g运行t的原因,还是其他原因?
%20
通常表示HTML中的一个space URL编码,尽量确保你的输出中没有space。
你可以使用这样的东西来帮助:
string.replace(/ /g,'')
去除白色 space。其中字符串是你的 URL.
或者试试这个:
.replace(/%20/g,'')
只需检查您的 selectedValue 值。 -
字符前有一个 space。要么删除它,要么在使用它之前调用 trim。
应该可以解决你的问题。
可能是因为别的原因。添加 %20
是因为 URL 转义规则(d3.json()
可能适用;Grunt 在这里不应该有影响)但它的意思是 selectedValue
以 space字符。我在您的评论中看到,您 100% 确定没有,但如果那是真的,那么 URL 中就不会有 %20
。计算机不会只是为了好玩而添加东西,总是有原因的。
所以我的建议是在运行时调试代码以查看变量包含的内容,然后在整个代码库中搜索 -wards-data.json
(因为代码中可能有第二个位置您忘记了).
如果这不起作用,那么你必须告诉我们更多关于 Grunt 配置的信息(你在压缩脚本,混淆吗?你安装了插件吗?)同时向我们展示 Grunt 生成的代码您的意见。