Jquery Ajax数据没有显示

时间:2014-08-31 20:48:41

标签: jquery ajax node.js

在下面的ajax请求中,我向节点服务器发送请求,对名为fileName的文件进行一些处理。

的Ajax

$.ajax({
    type: "POST",
    data: {'imageFileName': fileName},
    contentType: "json",
    url: '/myRoute',
    success: function(data){
        if(!data){
            errorMessage();
        }
        else{
            display(data);
        }
    }
})

路由器

router.post('/myRoute', function(req, res){
    console.log(req.imageFileName) //Undefined
    res.end();
})

但是,当我在服务器端记录请求时,我得到一个没有fileName的巨型对象。鉴于请求名为reqreq.imageFileName产生未定义。我做错了什么,以至于我无法访问服务器端的fileName

3 个答案:

答案 0 :(得分:0)

尝试删除数据中的引号。还要交叉检查文件名中的内容。

$.ajax({
    type: "POST",
    data: {imageFileName: fileName},
    contentType: "json",
    url: '/myRoute',
    success: function(data){
        if(!data){
            errorMessage();
        }
        else{
            display(data);
        }
    }
})

http://api.jquery.com/jquery.ajax/

答案 1 :(得分:0)

尝试以下方法:

$.ajax({
type: "POST",
data: {'imageFileName': fileName},
url: '/myRoute',
success: function(data){
    if(!data){
        errorMessage();
    }
    else{
        display(data);
    }
}
})

服务器端

 var bodyParser = require('body-parser');
 app.use(bodyParser.urlencoded({
 extended: false
 }))

我想知道它的内容类型是否会给你带来麻烦。

答案 2 :(得分:0)

标记位于请求的body中,由body-parser提供。因此,这很有效。

router.post('/myRoute', function(req, res){
    console.log(req.body.imageFileName) //Correct
    res.end();
})