ajax函数没有返回预期的输出

时间:2016-09-28 09:35:02

标签: javascript ajax asp.net-mvc-4 model-view-controller

控制器正在返回:

return Json(new { html = "<html><body>HELLO</body></html>" },JsonRequestBehavior.AllowGet);

这只是一个字符串'HELLO'

我的json功能如下:

function callPrint() {
        var PrintCssContent = "";

        $.ajax({
            url: '@Url.Action("GetHtmlString", "Itinerary", new { area = "Travel" })',
            dataType: "text",
            success: function (data) {
                alert(data);

                WinPrint.document.write(data);
                WinPrint.document.write(DivMainContent.innerHTML.toString());
                WinPrint.document.write("</body></html>");
                WinPrint.document.close();
                WinPrint.focus();
                WinPrint.print();
                WinPrint.close();
            },
            error:function(){
                alert('error');
            }
        });
        return false;
    }

但是json警告返回的内容如下: { “HTML”: “\ u003chtml \ u003e \ u003cbody \ u003eHELLO \ u003c /体\ u003e \ u003c / HTML \ u003e”}

如何使用我的json函数简单地返回'HELLO'?

2 个答案:

答案 0 :(得分:1)

您需要使用JSON.Parse来返回JSON数据。将您的alert声明更改为

 var parseData = JSON.parse(data);
 alert(parseData.html);

希望这有帮助!

答案 1 :(得分:1)

你需要将结果转换为json,然后打印出来,这是代码:

function callPrint() {
    var PrintCssContent = "";

    $.ajax({
        url: '@Url.Action("GetHtmlString", "Itinerary", new { area = "Travel" })',
        dataType: "text",
        success: function (data) {
            var dataParsed = JSON.parse(data);
            WinPrint.document.write("<html><body>");
            WinPrint.document.write(dataParsed.html);
            // WinPrint.document.write(DivMainContent.innerHTML.toString());
            WinPrint.document.write("</body></html>");
            WinPrint.document.close();
            WinPrint.focus();
            WinPrint.print();
            WinPrint.close();
        },
        error:function(){
            alert('error');
        }
    });
    return false;
}