使用jQuery从Web服务获取JSON

时间:2014-03-24 20:36:32

标签: javascript jquery web-services

所以我的javascript看起来像:

    try {
        var response = $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "BudgService.asmx/LoadDetail",
            data: "{'building': '63170', 'CurrentYear':'2014'}",
            dataType: "json"
        });
        $.when(response).then(function () {
            loadData();
        });
    } catch (err) {
        alert(err);
    }

    function LoadData() {
        alert('here');
    }

和网络服务

    [ScriptMethod]
    public string LoadDetail(string building, string CurrentYear) {
        return "[{color:\"red\", value: \"#f00\"}]";
    }

但我从未进入loadData函数,并且没有任何内容被填充到响应中。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的JSON无效。

您的回复:

在JavaScript对象文字语法中,属性名称可以是字符串或标识符,但在JSON中它们必须是字符串。

"[{\"color\":\"red\", \"value\": \"#f00\"}]"

根据您的要求:

在JavaScript中,字符串可能以"'个字符分隔,但在JSON中,它们必须以"个字符分隔。

data: '{"building": "63170", "CurrentYear":"2014"}',

根据经验,最好构建一个本机数据结构,然后使用JSON库将其序列化为JSON,而不是尝试手工制作JSON。

此外,您无法在GET请求中包含请求正文。你需要使用POST。