Web API通过URL请求正常,jQuery调用时字符串字段返回NaN求助
问题分析与解决方案
我一眼就揪出你代码里的小bug啦!在拼接HTML字符串的时候,你写了+ + data.stringvalue——这里多了一个多余的加号!第二个加号会强制把data.stringvalue转换成数字,如果这个字段本身是字符串(比如包含非数字字符),转换失败就会返回NaN。而直接用浏览器请求API时,你看的是原始JSON数据,不会做这个强制转换,所以完全正常。
修正后的代码
把那个多余的加号去掉就搞定了,顺便给你优化了几个细节:
$.ajax({ type: 'GET', // 注意jQuery的参数是小写的type,规范写法避免兼容问题 url: 'api/controller1', dataType: 'JSON', success: function (data) { var htmlString = ''; $(data).each(function (index, item) { // 把参数名改成item,避免和外层data混淆,可读性更好 var myDate = new Date(item.date); htmlString += '<h3>' + String(myDate) + '</h3><div>' + item.ID + "<br/>" + item.stringvalue + '</div>'; }); // 记得把拼接好的html插入到页面目标元素里,比如:$('#your-target-element').html(htmlString); } })
额外排查建议
如果修正后还是有问题,可以先在success函数里加一句console.log(data),打开浏览器控制台看看API返回的JSON里stringvalue字段的具体值,确认它确实是字符串类型,没有返回null或者空字符串的情况。
内容的提问来源于stack exchange,提问作者Ramy Salem
相关产品推荐
相关产品推荐

