Javascript java脚本中从Node.js获取数据时出错
我是Javascript和NodeJs的初学者,我创建了非常简单的NodeJs express服务器,从客户端获取一些消息并返回结果 (实际上,我是在GitHub上找到的Javascript java脚本中从Node.js获取数据时出错,javascript,node.js,Javascript,Node.js,我是Javascript和NodeJs的初学者,我创建了非常简单的NodeJs express服务器,从客户端获取一些消息并返回结果 (实际上,我是在GitHub上找到的 ) 但它不能正常工作 谢谢你帮我解决这个问题 /*Server side Code server.js*/ var express = require('express'); var app = express(); /*app.use(express.bodyParser());*/ app.listen(3000, f
) 但它不能正常工作 谢谢你帮我解决这个问题
/*Server side Code server.js*/
var express = require('express');
var app = express();
/*app.use(express.bodyParser());*/
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
/*app.get('/endpoint', function(req, res){
var obj = {};
obj.title = 'title';
obj.data = 'data';
console.log('params: ' + JSON.stringify(req.params));
console.log('body: ' + JSON.stringify(req.body));
console.log('query: ' + JSON.stringify(req.query));
res.header('Content-type','application/json');
res.header('Charset','utf8');
res.send(req.query.callback + '('+ JSON.stringify(obj) + ');');
});*/
app.post('/endpoint', function(req, res){
console.log('Get request By Client');
var obj = {};
console.log('body: ' + JSON.stringify(req.body));
res.send(req.body);
});
在客户端,我使用此代码从服务器获取数据
/*client side code: client.html*/
<html>
<head>
<title>jsonp test</title>
<script src="http://code.jquery.com/jquery-1.6.2.min.js">
</script>
<script type="text/javascript">
$(function(){
$('#select_link').click(function(e){
e.preventDefault();
console.log('select_link clicked');
/*$.ajax({
dataType: 'jsonp',
data: "data=yeah",
jsonp: 'callback',
url: 'http://localhost:3000/endpoint?callback=?',
success: function(data) {
console.log('success');
console.log(JSON.stringify(data));
}
});*/
var data = {};
data.title = "title";
data.message = "message";
$.ajax({
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
url: 'http://192.168.1.175:3000/endpoint',
success: function(data) {
console.log('success');
console.log(JSON.stringify(data));
}
});
/*$.ajax('http://localhost:3000/endpoint', {
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
success: function() { console.log('success');},
error : function() { console.log('error');}
});*/
});
});
</script>
</head>
<body>
<div id="select_div"><a href="#" id="select_link">Test</a></div>
</body>
/*客户端代码:client.html*/
jsonp测试
$(函数(){
$(“#选择_链接”)。单击(函数(e){
e、 预防默认值();
log('select_link clicked');
/*$.ajax({
数据类型:“jsonp”,
数据:“数据=是”,
jsonp:“回调”,
网址:'http://localhost:3000/endpoint?callback=?',
成功:功能(数据){
console.log('success');
log(JSON.stringify(data));
}
});*/
变量数据={};
data.title=“title”;
data.message=“message”;
$.ajax({
键入:“POST”,
数据:JSON.stringify(数据),
contentType:'应用程序/json',
网址:'http://192.168.1.175:3000/endpoint',
成功:功能(数据){
console.log('success');
log(JSON.stringify(data));
}
});
/*$.ajax('http://localhost:3000/endpoint', {
键入:“POST”,
数据:JSON.stringify(数据),
contentType:'应用程序/json',
success:function(){console.log('success');},
错误:函数(){console.log('error');}
});*/
});
});
我真的需要这段代码,因为我正在用AngularJS编写一个项目
监视星号事件。
如果你对这件事有什么意见,我将很高兴 可能出现多个问题:
- 这可能是一个CORS问题:(为了避免CORS问题,我建议您使用名为“CORS”的npm包。它非常容易使用:
const cors=require('cors')
然后简单地添加:
在你的app.use(cors())
之前app.listen(3000,function(){})
- 这可能是一个解析问题,因为您需要手动解析
对象数据
- 可能是您的url错误
console.log(“示例应用程序正在端口3000上侦听!”)
是否显示在您的控制台中
一个好主意是使用“postman”之类的工具测试api/后端
…但它不能正常工作
不是很有帮助。你能添加一些详细信息来解释发生了什么。你得到了什么错误??谢谢你的回答。我不知道这个工具。在和邮递员一样更正我的请求后,我从我的请求中得到了这个错误CORS策略已阻止从源“null”访问“”处的XMLHttpRequest:请求的资源上不存在“Access Control Allow origin”标头。为避免CORS问题,我建议您使用名为“CORS”的npm包。它非常易于使用。const CORS=require('CORS')然后是app.use(CORS())在你的app.listen(3000,函数(){})之前如果这对你有效,请接受我的答案