node.js POST练习显示原始HTML,而不是表单

时间:2013-08-09 13:44:23

标签: html forms node.js post

我是node.js的初学者。并遵循Manuel K的“Node Beginner”一书中的练习。

成功运行练习直到第一次POST练习。 50.

因此,这更像是一个浏览器配置问题:

显示表单的第一个POST练习是显示原始HTML。发生在Safari,Firefox,Chrome,Sea Monkey ..我在网上搜索“原始HTML代码”,找到了一些答案,但都指向了cookie和域名。请记住,服务器位于:

 http://localhost:8888

我已经粘贴了书中的代码,所以我很确定“内容类型”的内容是可以的,它通过“exec”练习。

我也在这里检查了“类似的问题”,并将继续浏览,但是......

这是相关的片段:

function start(response) {
    console.log("Request handler 'start' was called.");

    var body = '<html>'+
        '<head>'+
        '<meta http-equiv="Content-Type" content="text/html; '+
        'charset=UTF-8" />'+
        '</head>\n'+
        '<body>\n\t'+
        '<form action="/upload" method="post">\n\t'+
        '<textarea name="text" rows="20" cols="60"></textarea>\n\t'+
        '<input type="submit" value="Submit text" />\n'+
        '</form>'+
        '</body>'+
        '</html>';

        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write(body);
        response.end();
}

1 个答案:

答案 0 :(得分:3)

更改回复中的Content-Type

response.writeHead(200, {"Content-Type": "text/plain"});应为response.writeHead(200, {"Content-Type": "text/html"});

您在响应正文中声明了正确的DOCTYPE,但Content-Type标头是浏览器将用于确定如何显示响应的内容。