TLDR;
固定如下
selectedValue = selectedValue.replace(/\s+/g, '')
感谢:Richard Macarthy 和 Aaron Digulla 的回答,这让我找到了答案正确答案。
请注意,Grunt 似乎出于某种原因添加了这个空格。修复非常简单...
原始问题
我有一个 JSON 请求,它获取一个 JSON 文件的内容,用于使用 d3.js 进行数据可视化。
这一切都在本地运行良好,但是当我运行 grunt build 时,URL 字符串不知从哪里注入(inject)了一个 %20
...
这是我运行 Grunt 之前字符串的样子:
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
在我运行 Grunt 构建之后,计算的 URL 字符串更改为:
http://localhost:8080/dist/json/wards-info/liverpool%20-ward-data.json
如您所见,它似乎在 liverpool-ward
之间添加 %20
这是因为咕噜声,还是因为其他原因?
最佳答案
%20
通常代表 HTML URL 编码中的空格,请尽量确保输出中没有空格。
你可以使用这样的东西来帮助:
string.replace(//g,'')
去除空格。其中字符串是您的 URL。
或者试试这个:
.replace(/%20/g,'')
关于运行 grunt 后添加 %20(空格)的 Javascript URL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491761/