在Java脚本中从Node.js获取数据时出错

时间:2019-01-08 16:43:09

标签: javascript node.js

我是Javascript和节点JS的初学者,我创建了非常简单的NodeJs Express服务器来从客户端获取一些消息并返回结果

(实际上,我在GitHub上找到了它
https://gist.github.com/diorahman/1520485

但无法正常工作 感谢您为解决此问题所提供的帮助。

/*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>

我真的需要这段代码,因为我正在用Angular JS编写项目 监视星号事件。 如果您对此事有任何意见,我将很高兴。

1 个答案:

答案 0 :(得分:-3)

可能会出现多个问题:

  • 这可能是一个CORS问题:(为避免出现cors问题,建议您使用名为“ cors”的npm软件包。它非常易于使用:

    const cors = require('cors')

    然后只需在app.use(cors())前面添加app.listen(3000, function () {})

  • 由于您手动解析data对象,因此可能是解析问题
  • 可能是您的网址有误

console.log('Example app listening on port 3000!')是否显示在您的控制台中?

一个好主意是使用“邮递员” {{3}}之类的工具来测试您的api /后端

相关问题