我正在尝试使用已传入的过滤器选项加载tableau仪表板,javascript api正确编码了字符串,但是当我在值中使用,
时,编码无法按预期方式工作,并且仪表板也无法使用已应用的过滤器加载
这是两个代码的比较
1)这可以正常工作并加载仪表板,并将操作员设置为Yuson Creek
,且过滤器api生成的网址为https://myurl&Operator=Yuson%20Creek&:apiID=host0#navType=1&navSrc=Parse
tableauViz = new tableau.Viz(frameDiv[0], url, {
highdpi: true,
hideTabs: true,
hideToolbar: true,
width: "100%",
height: "100%",
"Operator": ["Yuson Creek"]
});
2)此代码无效,且过滤器值设置为“ Abc,M.L. Corp.”并生成网址https://myurl&Operator=Abc%2C%20M.L.%20Corp.&:apiID=host0#navType=1&navSrc=Parse
tableauViz = new tableau.Viz(frameDiv[0], url, {
highdpi: true,
hideTabs: true,
hideToolbar: true,
width: "100%",
height: "100%",
"Operator": ["Abc, M.L. Corp."]
});
看起来像当过滤器值在字符串中包含逗号时,URL编码无法按预期工作。我还尝试传递诸如“ Abc%2C + M.L. + Corp”之类的字符串。但仍然无法正常工作。
当字符串值中包含逗号时,如何传递它。
在此方面的任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
昨天我使用Tableau API检索视图图像时遇到了同样的问题。通过在逗号前面添加编码的转义字符可以解决此问题。因此,编码后逗号变成%5C%2C。