我试图使用onchange=从列表框中获取和发布数据,但出现错误Reference Error: Cant find variable: getMessage getMessage是包含ajax get和post的函数的名称,而我正在gessueing这意味着它找不到该功能由于某种原因。有人知道为什么吗?我的代码如下所示。

<script type="text/javascript">
    function getMessage() {
    var data = { message : {$("#messageselect").val(); }};

    $.ajax({
        url: "/message",
        type: "GET",
        data: JSON.stringify(data),
        dataType: 'jsonp'
    })

    $.ajax({
        url: "/message",
        type: "POST",
        dataType: 'json',
        contentType: 'application/json',
        success: function(data) {
            console.log(data);
        }
        error : function(err) {
            console.log("error fetching message");
        }
    });
 }
</script>


服务器:

app.post('/message', function(req, res) {
    console.log(JSON.stringify(req.body));
    Message.findOne({ 'page.message' : req.data }, function(err, message) {
        if(err){
            throw err;
        }
        res.send(message);
    });
});


的HTML:

<form method="POST">
  <select multiple="multiple" class="messageselect" onchange="getMessage()" id="messageselect">
    <% if(message) { %>
        <% for(i=messagecount-1;i>=0;i--) { %>
            <option value="<%= message[i].page.message %>">
                 From: <%= message[i].page.username %>
                 Message: <%= message[i].page.messagetitle %>
            </option>
        <% } %>
    <% } %>
    </select><br><br><br>
</form>

最佳答案

函数中的语法错误。试试这个。

function getMessage() {

    var data = {
        message: $("#messageselect").val()
    };


    $.ajax({
        url: "/message",
        type: "GET",
        data: JSON.stringify(data),
        dataType: 'jsonp'
    });

    $.ajax({
        url: "/message",
        type: "POST",
        dataType: 'json',
        contentType: 'application/json',
        success: function (data) {
            console.log(data);
        },
        error: function (err) {
            console.log("error fetching message");
        }
    });
}

09-16 23:42