【发布时间】:2020-07-28 12:39:54
【问题描述】:
我目前正在处理在 web mvc 项目上呈现一些图形。当我调试代码时,图表已经在我的机器上呈现,但是当我在我的 QA 服务器的 IIS 上发布它时,我在控制台上收到以下错误
TypeError: JSON.parse(...).forEach 不是函数
这是我目前正在工作的代码的 sn-p
ajaxPostConstancy.done(function (html) {
Utils.Alerts.HideGif();
var data = {};
var category = [];
var colors = [];
JSON.parse(html).forEach(function (e) {
category .push(e.date);
colors.push(e.color);
data[e.date] = e.data1;
})
....
有什么想法吗?
编辑:JSON.parse 中的 html 变量是此代码返回的字符串
public async Task<string> GetCompositionGraph(string contract, string methodName)
{
string preFormat = null;
try
{
string method = _configuration["Position:method:" + methodName];
PositionBL _bl = new PositionBL(Request, Response, _baseUri, method);
object model = await _bl.PostCompositionGraph(contract);
preFormat = JsonConvert.SerializeObject(model);
}
catch(Exception ex)
{
ViewBag.error = ex.Message;
}
return preFormat;
}
编辑2:第一次编辑时代码生成的html变量的内容:
html 内容: [{"color":"#162ECB","date":"20","data1":1122954.8708},{"color":"#E03473","date":"00","data1":1323061.6168} ,{"color":"#CE029D","date":"26","data1":29982.2271}]
这张图片是我在调试网站时从 JSON.parse 得到的结果
编辑 3:视觉输入
编辑 4:所以我把它缩小到当我在 Release 模式下调试网站时出现错误的事实,所以这是向前迈出的一步
【问题讨论】:
-
什么是
html? -
猜想,如果它解析成功但
forEach不是一个函数,那么你解析的是一个object而不是一个数组。但是html对于某些 JSON 来说是个奇怪的名字。 -
@VLAZ 我为 html var 添加了一个小解释
-
对不起,我看错了。但是
html的内容是什么?您正在展示它是如何生成的,但我们甚至无法说出这会产生什么真实数据。就我们所知,它可能是null,也可能是一个普通的对象。事实上,代码暗示了这一点,但我不知道。你能说明失败的 JSON 是什么吗? -
@VLAZ 我添加了在我的本地主机上呈现的图表的内容和视觉效果,但在发布时没有
标签: javascript json asp.net-mvc asp.net-core