node.js - 如何将 jsonp 与 node.js express 一起使用

标签 node.js express jsonp

我正在尝试使用 node.js 制作三星智能电视应用程序。

在我的项目中,我想让我的应用程序与服务器 pc 通信。

根据许多网站,我可以使用“jsonp”来做到这一点。

这是我找到的客户端代码。

<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');

                function test(data){
                    return {"message":"ok"};
                }

                 $.ajax({
                    dataType: 'jsonp',
                    data: "data=yeah",                      
                    jsonp: 'callback',
                    url: 'http://172.20.10.3:3000/endpoint?callback=?',                     
                    success: function(data) {
                        console.log('success');
                        console.log(JSON.stringify(data));
                    }
                });
            });             
        });
    </script>
</head>
<body>
    <div id="select_div"><a href="#" id="select_link">Test</a></div>    
</body>

而且,这是我找到的服务器端代码。

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) + ');');
});

这些代码在我的电脑(服务器电脑)上工作,但是当我在其他电脑上打开客户端页面时,它不起作用。

控制台只给我这个日志:

 X GET http://172.30.2.2:3000/endpoint?callback=jQuery11020685203080996871_1376482492523&data=yeah&_=1376482492524  

我想用jsonp来处理跨域,但是我觉得不行……

我能做些什么来解决这个问题?

请帮帮我!!

最佳答案

只需使用

res.jsonp(obj)

你可以去 ExpressJS JSONP了解更多信息

关于node.js - 如何将 jsonp 与 node.js express 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231579/

相关文章:

javascript - 在 Meteor 中为 CloudMQTT 配置 mqttConnect 选项

javascript - 从 app.get 回调调用的模块中的主文件访问变量

javascript - 使用 module.exports 和回调函数导出对象

javascript - 如何在 Jade 模板子 block 中运行脚本?

javascript - 启用 CORS 的正确位置在哪里?

jquery - 修改 JSONP 请求的 HTTP header

jquery - javascript - 想要使用 ajax 访问另一个域的内容吗?

javascript - Gulp 构建全栈应用程序的输出/路径/结构策略

node.js - ES6 导入语句在 Node v8.4.0 中不起作用

javascript - 表达动态路由来处理/a/b-c-d- :e-:f