我正在使用 MVC 4 和谷歌图表 API,当我在我的 web.config 中启用授权时,我的图表的交互性会中断。(渲染得很好,但是当我单击链接以获取更多信息时,会引发一个错误,不知道“google”是什么。
下面是我的vbhtml页面;
@Code
ViewData("Title") = "Home Page"
End Code
@Section Head
@Scripts.Render({"https://www.google.com/jsapi"})
End Section
<h3>Welcome to XXXXXXX</h3>
<p>
This will be a multi-system dashboard
</p>
<div id="vacancyRates"></div>
<script type="text/javascript">
google.load('visualization', '1.0', { 'packages': ['corechart'] });
google.setOnLoadCallback(drawChart('vacancyRates'));
function drawChart(container) {
$.ajax({
url: "/Home/GetVacancyRates",
success: function (result) {
var data = new google.visualization.arrayToDataTable(result);
var options = { title: 'Community Vacancy Rates', tooltip: { trigger: 'selection' }, width: 500, height: 500, is3D: true };
var chart = new google.visualization.PieChart(document.getElementById(container));
chart.setAction({
id: 'searchCommunity',
text: 'View Community',
action: function () {
selection = chart.getSelection();
//open a search for that community
window.location.href = "/Units/?community=" + data.getFormattedValue(selection[0].row, 2);
}
});
chart.draw(data, options);
},
error: function (xhr, status, msg) { alert(msg); }
});
}
当我将以下条目添加到我的 web.config 中时,一切都崩溃了。
<authorization><deny users="?"/></authorization>
*我还添加了几个其他授权标签,以允许匿名用户访问我的 CSS 页面以及相关的脚本和图像。
奇怪的是;图表在加载时渲染得很好,当相关操作被触发时,网站崩溃(在调试模式下)。上线失败
google.load(....);
“谷歌未定义”
想法?
我尝试过的事情:
将脚本全部移动到“@Section Head”
将渲染更改为“//www.google.com/jsapi”
更多的事情,我想我越来越近了
(请记住,它只会在身份验证开启时失败)
如果我从超链接中删除“/?community = X”,它一切正常(尽管我没有得到我想要的结果下一页显然)事实上,如果我在页面上以相同的格式创建另一个链接,使用 ?community 页面在谷歌图表之外失败。