我不确定我在这里做错了什么,我正在尝试在我的服务器收到帖子请求时设置内容类型标题。它总是会接收一个对象,每次只有不同的数据,所以当它到达服务器时,我需要它作为一个对象。
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,希望实现我的目标,但这没有奏效。