用JQuery ajax调用node,不能触发ajax回调函数的问题
发布于 10 年前 作者 heshiyu2015 4912 次浏览 最后一次编辑是 8 年前 来自 问答

先上源码地址:https://github.com/heshiyu2015/JQueryTest

今天想用jquery ajax调用一下node试试,下面是index.html的代码,超简单的JQuery AJAX

JQuery.png

我确认我的server.js收到了html发过来的数据,但是我用res.end返回,AJAX的回调函数却没能触发,下面是server.js的代码 server.js.png

代码都狠简单的,就是不知道错哪了,求大神讲解

13 回复

请确认你的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’: ‘*’。跨域的问题,你测试的时候应该是用了不同的端口。

@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的哟。

回到顶部