[英]Cross domain XHR with percolator js on node
我已经使用了渗滤器js CRUDCollection实现了一些API。 它由localhost:3000上的节点提供。 现在,我希望能够将该API与在localhost:8000上运行的django应用程序一起使用,但由于失败而失败,并显示错误信息Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.
使用Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.
我尝试在percolator函数中设置标头,但该标头被忽略:
list: function($, cb) {
$.authenticate = checkAuth;
$.res.setHeader('Access-Control-Allow-Origin', '*');
etc...
我研究了JSONP作为替代方法,但无法找出将响应包装在回调函数中的钩子。
我该如何解决?
这是我第一次听说Percolator.js。 那是一个有趣的图书馆。
无论如何,设置$.res.setHeader('Access-Control-Allow-Origin', '*');
确实为我工作。 您是否检查过此标头是否确实存在?
现在介绍JSONP。 您可以使用collectionGET
代替这样的list
:
collectionGET:function($) {
var data = ...; // some code here
var data_str = $.json(data).toString( ),
url = require("url").parse($.req.url, true),
jsonp = url.query.callback && url.query.callback.length && url.query.callback;
if (jsonp) {
$.res.setHeader( "content-type", "application/javascript" );
$.res.write( jsonp + "(" );
} else {
$.res.setHeader( "content-type", "application/json" );
}
$.res.write( data_str );
if (jsonp) {
$.res.write( ");" );
}
$.res.end();
}
不过,它有点低(似乎Percolator.js向响应中添加了一些其他内容)。 也许您需要Percolator.js来完成其他任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.