先上源码地址:https://github.com/heshiyu2015/JQueryTest
今天想用jquery ajax调用一下node试试,下面是index.html的代码,超简单的JQuery AJAX
我确认我的server.js收到了html发过来的数据,但是我用res.end返回,AJAX的回调函数却没能触发,下面是server.js的代码
代码都狠简单的,就是不知道错哪了,求大神讲解
请确认你的ajax请求没有跨域
var querystring=require(‘querysting’); data = querystring(data); //上面是stream流解码,必须,我下午忘了写,现在补 //下面是数组的json化输出 输出数组的时候 res.end(JSON.stringify(data));
//跟跨域没半毛钱关系。
res.writeHead(200,{'Content-Type':'text/plain', 'Access-Control-Allow-Origin': '*'});
加上’Access-Control-Allow-Origin’: ‘*’。跨域的问题,你测试的时候应该是用了不同的端口。
@ycloud 好像跨叻
@ruanyl 对奥,这样就行的通了,我要好好研究一下
@MiguelValentine 谢谢,不过这个语句好像有点问题
@ruanyl 可是我用的端口不都是1234么。
你运行server.js的端口和你跑index.html的http server的端口,或者你是直接双击在浏览器打开的index.html?
@ruanyl 原来是这样。。直接双击打开嘚,跨域了。看来我应该在server.js里返回哪个html文件
收到了数据就不是跨域。去掉setHeader试试。
@MiguelValentine 后端 var querystring=require(‘querysting’); data = querystring.parse(data);
前端 $.post(url,params,function(result) { alert(result); } )
@MiguelValentine 跨域服务端也能收到数据,刚才楼主已经说了,是直接双击html静态文件来运行的,很明显这就是跨域
@zjh-neverstop 跨域是不会SEND的哟。