0

我正在尝试将 Express.js 中的 JSON 发送回客户端,但无法使其正常工作。

路线/editor.js

exports.save = function(req, res){
    fs.readFile(__dirname + "/../public/index.html", function (err, data) {
        if (data == oldhash) {
          res.json({ r: 'no' })
        }
        else {
          res.json({ r: 'yes'})
        }
    });
});

公共/javascript/test.js

$( ".save" ).click(function( event ) {
        event.preventDefault();

        $.ajax( {
          url: 'http://localhost:3000/save',
          data: r,
          type: 'GET',
          success: function(r) {
            if( r == 'yes' ) {
               $('#echoResult').append('<p>yes</p>');
            }
            else {
                $('#echoResult').append('<p>no</p>');
            }
          }
       });

    });

然后相应地这是来自服务器的响应,附加正确的 HTML。

我在这里想念什么?我看到的所有 AJAX 示例都没有太大帮助。

任何建议都会受到欢迎。

编辑

我在客户端收到此错误-> Uncaught ReferenceError: r is not defined

4

1 回答 1

1

客户端错误可以这样解决:

$( ".save" ).click(function( event ) {
    event.preventDefault();

    $.ajax( {
      url: 'http://localhost:3000/save',
      type: 'GET',
      success: function(data) {
        if( data.r == 'yes' ) {
           $('#echoResult').append('<p>yes</p>');
        }
        else {
            $('#echoResult').append('<p>no</p>');
        }
      }
   });

});

data属性在成功回调中,以 r 作为参数。

如果没有有关您如何使用 express 的更多详细信息,我无法对服务器代码说太多。

于 2013-04-11T10:48:23.467 回答