希望有个高手能帮小弟解释下以下代码很少一部分哦!
发布于 2年前 作者 beiyio 962 次浏览

if (params.query && params.query.callback) { var str = params.query.callback + '(' + JSON.stringify(data) + ')';//jsonp res.end(str); }else{ console.log(“else”); res.end(JSON.stringify(data)); } 对JS了解太少了,是在没弄懂~if里的判断和var str = params.query.callback + '(' + JSON.stringify(data) + ')';//jsonp真的是看不懂了

11 回复

这是如何将data送回的问题,如果有query.callback,就用:params.query.callback + '(' + JSON.stringify(data) + ')',如没有就用:JSON.stringify(data)

代码不全。。。。。 params 应该是:

var URL = require(‘url’); var params = URL.parse(req.url, true); //这个req 也就是下面function中的参数req,client发来的

exports.aFunctionName = function(req,res){ //something; }

在此给出我的function,其中的res也就是上面function中的res,params就是上面定义的,buffer是你自己处理的json数组,比如: var buffer = {status: 'ok’,data:’你自己要响应回brower的JSON’}; 是你真实的数据 exports.resToClient = function(res,params,buffer){ if (params.query && params.query.callback) { var str = params.query.callback + '(' + JSON.stringify(buffer) + ')';//jsonp跨域 res.writeHead(200, {"Content-Type": "application/json"}); res.end(str); } else { res.writeHead(200, {"Content-Type": "application/json"}); res.end(JSON.stringify(buffer));//普通的json } }

能在说的具体一些吗还是不是太明白

能在说的具体一些吗还是不是太明白

以上是对 跨域名请求的响应,那么在client上要跨域请求,其它 ajax参数应该是: 比如:http://sogego.com/dealJSON?callback=?&id="+ id

如果不跨域名,那就写成:http://sogego.com/dealJSON?id="+ id 没有:callback=? 这一句

谢谢你的帮助,但是还是有一点不太懂,JSON.stringify(buffer)这个是将对象转换成字符串吧? 这段代码的意思是将buffer的东西转换成对象发送出去?还是怎么的…

这段代码的功能还是不太清楚~555555

哪个不清楚 意思主是判断brower是不是跨域名请求,如果是,params.query.callback就有值 然后把callback这个值原封不动的返回,这才能实现跨域名请求的处理。

如果不是跨域,直接res.end()就完事了。

@beiyio JSON.stringify(buffer)是把对象转成了字符

其实是这样的,我想知道的是 node.js怎么去解析一个json的数据,和怎么去发送json的数据,就从网上找了一段代码就是上面那段。全部的跟你给的基本是一样的,可是还是没弄明白。它是怎么解析和怎么发送的,还有就是有了上面的代码怎么才能做测试,检测是否可以正确解析和发送json,初学者问题较比多,请见谅。看了你的回复后感觉自己找的这个代码和自己想找的好像还不太一样。已经蒙了。~

其实是这样的,我想知道的是 node.js怎么去解析一个json的数据,和怎么去发送json的数据,就从网上找了一段代码就是上面那段。全部的跟你给的基本是一样的,可是还是没弄明白。它是怎么解析和怎么发送的,还有就是有了上面的代码怎么才能做测试,检测是否可以正确解析和发送json,初学者问题较比多,请见谅。看了你的回复后感觉自己找的这个代码和自己想找的好像还不太一样。已经蒙了。~

回到顶部