Node代码:
var http = require("http");var url = require('url'); //定时休眠函数function sleepFun(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds);}//访问地址:http://127.0.0.1:4000/?callback=ccc&name=allen&age=18&_=1491380773607http.createServer(function(req, res) { //sleepFun(3000); //var arg = url.parse(req.url).query; //callback=ccc&name=allen&age=18&_=1491380773607 var arg = url.parse(req.url,true).query; //{callback:'ccc',name:'allen',age:'18',_'1491380773607'} var callbackName = arg.callback; var responseData = {'code':'A00000','data':'akalaka'}; var responseString = JSON.stringify(responseData); if (callbackName) { var jsonpResponse = callbackName+'('+responseString+')'; res.end(jsonpResponse); } else { res.end(responseString); } // var resHTML = 'try{window.ccc({"code":"A00000","data":{"data":{},"code":"Q00301"}});}catch(e){}'; console.log(req.url);}).listen(4000);console.log("HTTP server is listening at port 4000.");
JS代码:
总结,一开始写死了callback名字,js参数的jsonpCallback和node返回的callback名字不一样,导致客户端js回调为error,success的回调无法执行。