我使用$ .ajax从node.js服务器请求数据。我正在Firefox中调试客户端。我在控制台中收到以下错误:语法错误无法获取/ xyz,其中/ xyz是我的服务器的路由。但是,页面正常工作。我想避免用此错误填充控制台,因为AJAX请求是递归完成的。

客户代码:

startUpdateGui = function(){
    (function updateGui(){
        $.ajax(
            {
                url:        "/updategui",
                type:       "POST",
                data:       {
                                id: "master"
                            },
                timeout:    10000,
            }
        ).done( function( data ){
            $( "#time_server" ).text( data );
            updateGui();
        });
    })();
}


startUpdateGui()<body>的末尾被调用一次。再次注意,该功能执行了我想要的功能。 done()已正确执行。

服务器代码:

app.post( '/updategui', function( req, res ){
    //log.mark( 'Routing \'/updategui\' with id = "' + req.body.id + '"' );

    res.end( (new Date()).toString() );
});


其中app来自Express

因此,查看客户端$.ajax(...)和服务器app.post(...),您可以看到问题出在哪里吗?

谢谢你的帮助!

最佳答案

您正在使用哪个版本的jquery?是1.9.0之前的版本吗?
http://api.jquery.com/jquery.ajax/。基本上,如果您未设置,则默认为get。
无论如何,您可以将其更新为方法吗?您也可以在updateGui()中调用updateGui()。
我不确定你是否想要

(function updateGui(){
    $.ajax(
        {
            url:        "/updategui",
            method:       "POST",  // <---- updated
            data:       {
                            id: "master"
                        },
            timeout:    10000,
        }
    ).done( function( data ){
        $( "#time_server" ).text( data );
        updateGui();  // <--- recursion
    });
})();


这是我的Nodejs代码。

var express = require('express');
var app = express()

.all('/updategui' , function(req, res, next){
    // res.write('all\n');
    next();
})

// app.get('/', function(req, res, next){
//  res.end('get\n');
// })
.post('/updategui', function(req, res, next){
    res.end('post\n');
})

app.listen(3000);

关于javascript - 使用jQuery AJAX获取“语法错误无法获取/xyz”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32730124/

10-11 22:30
查看更多