我的网站www.phmotorcycles.co.uk/parts/brakes.html有一个制作和测试环境。在页面的右侧有一组过滤器控件。现在,在测试环境中,这非常有效。
在页面加载时,将调用ASP页面,该页面从数据库返回JSON响应:
[{"value":"ktm"}]
函数调用如下:
function loadFilters(p,l,c) {
$.post('../supportScripts/productFilters.asp',{
level: l,
productManufacturer: $("#partMan").val(),
productGroup: p,
bikeModel: $("#partBM").val(),
modelYear: $("#partMY").val(),
ajax: 'false'}, function(data) {
var sel = $("#" + c);
var s = jQuery.parseJSON(data);
sel.empty();
sel.append('<option value=\'0\'>Please Select</option>');
for (var i=0; i<s.length; i++) {
sel.append('<option value="' + s[i].value + '">' + s[i].value.toUpperCase() + '</option>');
}
});
}
我得到的问题是for for循环,因为firefox报告为null。
我比较了两种环境中的所有代码,它们与数据库中的存储过程完全相同。
这个已经困扰了我一段时间,我甚至通过fiddler运行它,请求标题和响应是相同的,直到它在实时服务器上中断。
有没有人对我如何解决这个问题提出任何建议?
答案 0 :(得分:0)
您无需使用jQuery.parseJSON
。您的服务器正在返回Content-type: application/json
,因此jQuery正在为您解析它。它使用Content-type
“智能猜测”AJAX调用的返回类型。
这告诉jQuery你期待JSON,并为你解析它,即使
$.post
是错误的。
'json'