返回的json响应无法识别

时间:2013-04-25 15:08:38

标签: jquery mysql json asp-classic

我的网站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运行它,请求标题和响应是相同的,直到它在实时服务器上中断。

有没有人对我如何解决这个问题提出任何建议?

1 个答案:

答案 0 :(得分:0)

您无需使用jQuery.parseJSON。您的服务器正在返回Content-type: application/json,因此jQuery正在为您解析它。它使用Content-type“智能猜测”AJAX调用的返回类型。

这告诉jQuery你期待JSON,并为你解析它,即使$.post是错误的。

'json'