Node.JS中的Content-type标头不会设置为application / json

时间:2018-03-07 18:15:21

标签: javascript json node.js

我不确定我在这里做错了什么,我正在尝试在我的服务器收到帖子请求时设置内容类型标题。它总是会接收一个对象,每次只有不同的数据,所以当它到达服务器时,我需要它作为一个对象。

http.createServer(function(request,response) {
response.setHeader('Content-Type', 'application/json');
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "X-Requested-With")
var purl = "/api/forums/users/"
if(request.url == purl && request.method == "POST"){
    response.setHeader('Content-Type', 'application/json');
    console.log("Request Recieved!")
    var bufdat = []
    request.on('data',function(chunk){
        bufdat.push(chunk)
        var data = Buffer.concat(bufdat).toString()
        console.log(data)
    })
}
}).listen(6157)

关于此的一切工作,它从客户端接收对象(在这种情况下,客户端是镀铬扩展)并且它将以下发布请求发送到服务器:

$.ajax({
url:'http://localhost:6157/api/forums/users/',
type:'POST',
data:{
    name:"testname"
}
})

这确实到达了服务器,但不是JSON格式。在第13行,我有console.log(数据),它只打印出name=testname,它应该以JSON:{name:testname}形式出现。我不确定我哪里出错了,或者为什么它不会设置标题所以每次我收到这个帖子请求时,我的对象都是JSON格式。我几乎看过所见过的任何帖子,而且他们刚刚谈到使用response.setHeader('Content-Type', 'application/json');正如你在我的代码中看到的那样,我只是在黑暗中拍摄,在第2行添加它和7,希望实现我的目标,但这没有奏效。

0 个答案:

没有答案