使用 Node.js / Express 服务器进行 ajax GET 调用
我正在尝试为 node.js 编写一个小型 ajax 实时搜索。首先,这是我的客户端代码:
$('#words').bind('keyup', function(){
getMatchingWords($('#words').val(), function (data){
console.log('recieved data');
console.log(data);
$('#ajaxresults').show();
});
});
function getMatchingWords(value, callback) {
$.ajax('http://127.0.0.1:3000/matchword/' + value + '/', {
type: 'GET',
dataType: 'json',
success: function(data) { if ( callback ) callback(data); },
error : function() { if ( callback ) callback(null); }
});
}
这是我的服务器端路线:
app.get('/matchword/:value', function(req, res) {
console.log(req.params.value);
res.writeHead(200, {'content-type': 'text/json' });
res.write( JSON.stringify({ test : 'test'}) );
res.end('\n');
});
它可以工作,但我没有收到任何数据。回调函数中的数据始终为空。那么我做错了什么?谢谢你的帮助
I´m trying to write a small ajax live search for node.js. First of all here is my Clientside code:
$('#words').bind('keyup', function(){
getMatchingWords($('#words').val(), function (data){
console.log('recieved data');
console.log(data);
$('#ajaxresults').show();
});
});
function getMatchingWords(value, callback) {
$.ajax('http://127.0.0.1:3000/matchword/' + value + '/', {
type: 'GET',
dataType: 'json',
success: function(data) { if ( callback ) callback(data); },
error : function() { if ( callback ) callback(null); }
});
}
and here ist my serverside route:
app.get('/matchword/:value', function(req, res) {
console.log(req.params.value);
res.writeHead(200, {'content-type': 'text/json' });
res.write( JSON.stringify({ test : 'test'}) );
res.end('\n');
});
it works but i don´t recieve any data. data in the callback function is always null. so what i am doing wrong? thx for the help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
更改
为
Change
to
您发出 $.ajax() 请求的 URL 是什么?如果包含该客户端 JS 的页面也不是从 127.0.0.1:3000 加载的,那么您看到的错误是由于 AJAX 请求的同源要求造成的。
What's the URL that you're making the $.ajax() request from? If the page containing that client-side JS wasn't also loaded from 127.0.0.1:3000, the error you're seeing is due to the same-origin requirement on AJAX requests.
嘿,迟到总比不到好……
我正在研究你的问题,因为我也在尝试将简单的实时搜索与express.js 后端结合在一起。
首先,我将您的网址放入本地变量中。因为我不认为那是你的问题。
特别是如果您的 Express / Node 日志显示 200 响应。那么 url 就可以了...
看来你的函数没有返回数据(正确吗?)如果是这样,请尝试这个。
您可能还需要根据设置添加/修改标头...
auth 变量是代码中其他位置的编码身份验证对(如果您的网络服务需要某种身份验证...
hey better late than never...
I was looking at your problem because I am also trying to put a simple live search together with an express.js back end.
first of all I put your url into a local variable. As I don't think that was your problem.
Particularly if your express / node log was showing a 200 response. then the url was fine...
It seems your function wasn't returning data (correct ?) if so try this.
you might also need to add / modify your headers subject to the set up...
the auth variable being an encoded auth pair somewhere else in your code (if your web service is requires some kind of auth...