req - Cómo usar jsonp con node.js express
Estoy tratando de hacer la aplicación Samsung Smart TV con node.js.
En mi proyecto, quiero hacer que mi aplicación se comunique con el servidor PC.
Según muchos sitios web, puedo hacer esto con "jsonp".
Aquí hay un código del lado del cliente que encontré.
<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>
Y, aquí hay un código del lado del servidor que he encontrado.
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) + '');'');
});
Estos códigos funcionan en mi PC (servidor PC), pero cuando abro la página del cliente en otra computadora, no funciona.
Consola solo dame este registro:
X GET http://172.30.2.2:3000/endpoint?callback=jQuery11020685203080996871_1376482492523&data=yeah&_=1376482492524
Quiero usar jsonp para manejar dominios cruzados, pero no funciona, creo ...
¿Qué puedo hacer para arreglar esto?
¡Por favor, dame ayuda!
Tratar de reemplazar
res.send(req.query.callback + ''(''+ JSON.stringify(obj) + '');'');
con
res.jsonp(req.query.callback + ''(''+ JSON.stringify(obj) + '');'');