Tag: 跨域

在本地环境中从闪存套接字连接到TCP服务器

我已经做了一个分发版本的SWF文件给客户端在他们的电脑上使用。 我有一个从该swf文件连接的TCP服务器。 在testing之前,我已经在Adobe网站上阅读了一些与政策文件有关的文章 我试图testing一下,并使用了nodejs和swf文件 但我失败了 这是它的样子。 在根上的crossdomain.xml <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" to-ports="3000" /> </cross-domain-policy> tcp_server.js var sys = require("sys"), net = require("net"); var server = net.createServer(function(stream) { stream.addListener("connect", function() { sys.puts("Client connected"); stream.write("hello\r\n"); }); stream.addListener("data", function(data) { sys.puts("Received from client: " + data); stream.write(data); }); stream.addListener("end", function() { sys.puts("Client disconnected"); […]

与节点的代理http请求

我在一个域上有一个nodeJs前端,另一个域上有一个后端服务器。 我希望能够从前面到后面执行Ajax请求。 所以,我打算为此使用反向代理,以绕过相同的源策略限制。 我的后台Rest服务器将通过基本身份validation或OAuth进行保护。 我想知道,如果我使用node-http-proxy,如果可以在代理之前发送http请求中的授权头,以及如何。 非常感谢。

响应string中的未知字符

我想从我的Node.js服务器获取远程DOM 。 一般来说,我得到正确的回应,但在某些情况下,我得到这样的符号 +؃LcBJDIд 这是我的标题 res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); res.header("Accept-Encoding", "gzip,deflate, sdch"); 我能做些什么来获得正确的DOM ?

angular度$ http请求从80端口到另一个端口

我试图从一个angular度1项目使用$ http方法来打击本地服务器上的端口3000的节点API,但我得到这个错误: XMLHttpRequest无法加载http:// localhost:3000 / login 。 请求标头字段预检响应中的Access-Control-Allow-Headers不允许授权。 我还在节点js中添加了Access-Control-Allow-Origin : * : req.on('end', function() { req.rawBody = req.rawBody.toString('utf8'); res.setHeader('Access-Control-Allow-Origin', 'http://localhost'); // Request methods you wish to allow res.setHeader('Access-Control-Allow-Methods', '*'); // Request headers you wish to allow res.setHeader('Access-Control-Allow-Headers', '*'); // Set to true if you need the website to include cookies in the requests sent // […]

跨子域/端口socket.io – 如何处理?

我正在面对Socket.io的跨子域/端口问题。 在Opera的例子中,当我禁用Flash的Socket.io自动退回到JSONP – 这不好(XHR是更好)。 我现在使用testing子域名,我们称之为test.example.com。 我尝试了很多解决scheme http://data.test.example.com:80 http://test.example.com:8000 http://example.com:8000 没有解决scheme的工作。 任何提示? 也许我应该使用nginx作为反向代理? 像http://test.example.com/data/ ?

从Sencha Touch 2到外部服务器的跨域更新

尝试创build同步到Node.js服务器的Sencha-Touch-2应用程序; 下面的代码。 服务器使用同一IP上的另一个端口,所以这是跨域的。 (服务器使用Mongoose与MongoDB后端对话(未显示)) 如图所示使用JSONP代理可以从服务器读取数据,但在写入时会中断: “JSONP代理只能用于读取数据” 。 我猜JSONP代理编写器configuration只是写查询,不用于写同步(保存)。 Sencha文档声明,即使在Sencha论坛中讨论了跨域Ext.Ajax/Ext.data.Connection ,但是Ajax代理不能跨域, http : //www.sencha.com/forum/showthread。 PHP?17691-跨域-Ext.Ajax的-Ext.data.Connection 我已经find了几种方法来做(跨域)JSON发布(例如, 移动应用程序使用Sencha的触摸 – JSON请求生成语法错误 ),但不知道如何将其作为一个作家在同步我的商店的代理作家。 Sencha Touch:创build/更新function的ScriptTagProxy url似乎提供了指针,但这是ajax,显然不适合跨域。 我一直在阅读这个论坛和其他地方几天,但我似乎被卡住了。 任何帮助将非常感激。 Node.js和restify服务器 var server = restify.createServer({ name: 'Server', key: fs.readFileSync(root+'/'+'privatekey.pem'), certificate: fs.readFileSync(root+'/'+'certificate.pem') }); server.use(restify.bodyParser()); server.use(restify.queryParser()); function getMessages(req, res, next) { Model.find(function (err,data) { res.setHeader('Content-Type', 'text/javascript;charset=UTF-8'); res.send(req.query["callback"] + '({"records":' + JSON.stringify(data) + '});'); […]

无法创build与Node.js socket.io服务器的跨域websocket连接

根据我的search,这不应该那么辛苦,到目前为止我已经尝试了许多没有运气的东西。 我有一个在Heroku上运行的Node.js服务器,它创build了一个socket.io服务器(我也曾尝试在Nodejitsu上托pipe它,但没有帮助)。 socket.io套接字连接没有问题,如果我从实际的Node.js服务器,我想创build一个websocket连接的服务页面,但我不能使任何我的跨域套接字连接尝试工作。 我试图做一个跨域连接到这个socket.io服务器几种方式: (1)一个简单的本地HTML文件,其中包含一些脚本,用于从节点服务器(使用$ .getScript)成功获取客户端socket.io库,然后尝试创build套接字连接(var socket = io.connect('nodejs_server_hostname:port_num ');),失败。 (2)在本地运行Rails应用程序服务器(开发模式),为包含JavaScript的客户端提供响应,尝试以与方法(1)相同的方式形成websocket连接,并且失败 (3)在Heroku中托piperails应用程序,并执行与方法(2)相同的操作。 这也失败了。 我确保按照Heroku文档( https://devcenter.heroku.com/articles/heroku-labs-websockets )中的说明启用websockets。 如果请求是从客户端尝试与之build立socket.io连接的实际的Node.js服务器提供的,那么一切都可以正常工作。 所有三次尝试都会触发socket.socket.on('error')事件。 我已经尝试使用以下代码修改rails应用程序中的http响应头文件: response.headers['Access-Control-Allow-Origin'] = '*' 这正确地设置标题(我从轨道服务器请求页面后检查),但它不修复套接字连接问题。 我在执行日志logging的Node.js服务器上创build了一个socket-io授权callback函数,看起来这个callback函数根本就没有碰到跨域套接字连接尝试。 所以看起来Node.js服务器甚至从来没有看到websocket连接尝试,这对我来说是相当混乱的。 下面我将粘贴所有相关的代码文件。 Node.js服务器文件: var http = require('http'), express = require('express'), whiskers = require('whiskers'), redis = require('redis'), port = process.env.PORT || 5000, app = express(), server = http.createServer(app).listen(port), io = require('socket.io').listen(server); console.log('—- […]

来自Node.JS(使用express)服务器的跨域jQuery.getJSON在Internet Explorer中不起作用

这是一个烦人的问题,我不认为这是唯一的IE有这个问题。 基本上我有一个Node.js服务器,我从中进行跨域调用来获取一些JSON数据来显示。 这需要是一个JSONP调用,我给URL中的callback。 我不确定的是,怎么做? 所以网站(domainA.com)有一个像这样的JS脚本的HTML页面(在Firefox 3中都可以正常工作): <script type="text/javascript"> var jsonName = 'ABC' var url = 'http://domainB.com:8080/stream/aires/' //The JSON data to get jQuery.getJSON(url+jsonName, function(json){ // parse the JSON data var data = [], header, comment = /^#/, x; jQuery.each(json.RESULT.ROWS,function(i,tweet){ ….. } } …… </script> 现在我的Node.js服务器非常简单(我正在使用express): var app = require('express').createServer(); var express = require('express'); app.listen(3000); app.get('/stream/aires/:id', function(req, […]

跨域Sails.js + Socket.io授权

我正在开发一个应用程序, 将推送内容提供给托pipe在不同域中的一组Web应用程序。 我使用Sails.js和Socket.io,并像这样构造它: 在每个Web应用程序的客户端浏览器上运行的客户端脚本如下所示: socket.on('customEvent', function(message){ //do something with message on event trigger } 然后,在服务器中,事件'customEvent'在需要的时候被发出,并且可以工作(例如onConnect事件: sails.io.emit('customEvent',{message …} )。 但是在处理授权时我遇到了一个问题。 我试过的第一种方法是基于cookie的authentication,正如这里所说的(通过改变api/config/sockets.js函数authorizeAttemptedSocketConnection ),但是这不是一个合适的生产解决scheme,并且浏览器不支持与更严格的cookie政策(由于其默认禁止第三方cookie)。 我的问题是:如何使用sails.js实现一个适当的跨浏览器和跨域授权机制,这可以在socket.io的授权过程中得到支持? ====== 更多细节: 我也尝试用一个着名的oauth提供者(例如facebook)添加一个login,以这个例子为基础。 我有Passport会话,但是我仍然无法从客户端脚本进行身份validation(它只能在我的节点应用程序直接托pipe的页面中工作)。 获取会话的JSONP请求可能是一个解决scheme,但在Safari中不能正常工作。 另外,我更喜欢用户在Web应用程序中进行身份validation,而不是直接在我的节点应用程序中进行身份validation。

在HTTP请求中了解引用者/引用者的安全方式是什么?

我正在使用nodejs来编写图片上传服务。 支付客户端将能够发送图像文件到我在我的服务器上设置的端点。 但是,当每个请求进入时,我需要确认它实际上是一个付费客户提出请求。 我想让客户给我他们的域名,我只是检查referer头。 但是,有人可以很容易地欺骗引用标题和使用我的服务,而不付钱。 SaaS开发者如何面对这个技术问题? 有没有可能解决这个问题,而不需要我的客户端有一些服务器端代码?