Tag: cors

AngularJS:无法发送POST请求与适当的CORS头

我正在使用AngularJS创build一个Web应用程序。 为了testing它,我使用angular-seed模板在NodeJS服务器上运行应用程序。 在这个应用程序中,我需要通过POST请求发送一个JSON消息到另一个主机 ,并得到响应,所以,我正在使用CORS 。 我的请求是通过实现一个使用AngularJS http服务的服务完成的 (我需要$ http提供的抽象级别,所以我不使用$ resource )。 在这里,我的代码。 请注意, 我修改了$ httpProvider来告诉AngularJS使用适当的CORS头文件发送它的请求 。 angular.module('myapp.services', []). // Enable AngularJS to send its requests with the appropriate CORS headers // globally for the whole app: config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.useXDomain = true; /** * Just setting useXDomain to true is not enough. AJAX request are […]

CORS麻烦与nodejs和AngularJS

由于某种原因,每当我尝试发布一些数据到我的api服务器,我得到以下两个错误。 OPTIONS http://localhost:3000/test2 Request header field Content-Type is not allowed by Access-Control-Allow-Headers. angular.min.js:99 XMLHttpRequest cannot load http://localhost:3000/test2. Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 这里是我的客户端angularJS代码试图发送一些简单的数据。 此代码当前正在位于http://localhost:8080下的nginx服务器上运行 function Controller($scope, $http) { //scope is all of the elements within the controller declared on the html var url = 'http://localhost:3000/test2'; $scope.listVaules = function () { console.log("about […]

Node.js中Node-static中请求的资源上没有“Access-Control-Allow-Origin”标头

我对node.js很陌生,我不知道如何解决这个问题。 希望您能够帮助我。 我有一个运行在node.js中的服务器,它有node-static和socket.io。 代码如下。 var numClients=0; var static = require('node-static'); //var static = require('express'); var http = require('http'); var file = new(static.Server)(); var app = http.createServer(function (req, res) { res.setHeader('Access-Control-Allow-Origin', 'http://172.26.191.45:8080'); // Request methods you wish to allow res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); // Request headers you wish to allow res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); // […]

与Facebookcallback函数的CORS错误

我有以下代码: app.js: var passport = require('passport') , FacebookStrategy = require('passport-facebook').Strategy , … passport.serializeUser(function(user, done) { console.log('serializing user') done(null, user); }) passport.deserializeUser(function(obj, done) { console.log('deserializeUser') done(null, obj) }) passport.use(new FacebookStrategy({ clientID: FBAPP.id, clientSecret: FBAPP.secret, callbackURL: "http://www.mylocal.com:3000/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { // asynchronous verification, for effect… process.nextTick(function () { return done(null, profile) }) } )) […]

节点快递服务器不响应ajax

我是node.js的新手,遇到了Cors问题。 我发送客户端ajax获取请求从一个快递服务器到另一个,但至less我不能从app.all('*', function(req, res, next){console.log("request: "+req)}) GET请求看起来像这样: $.ajax({ type: 'GET', url: 'http://localhost:8082/request' }); 我也在ajax中设置标题: 'beforeSend : function(xhr) { xhr.setRequestHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS'); xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); xhr.setRequestHeader('Access-Control-Max-Age', '1000'); xhr.setRequestHeader('Authorization', '*')}, …或在node.js中设置cors模块: var cors = require('cors'); var app = express(); app.use(cors()); app.options('*',cors(),function(){ console.log("preflight") }); 在firefox和chrome中,我都没有收到任何回应(在chrome中我得到了net::ERR_CONNECTION_REFUSED )当我的电脑在本地运行节点服务器时,一切正常。 curl命令也正常工作。 有没有机会,这是托pipe/端口的问题,还是我还错过了什么?

CORS节点js问题

经过了多个post,我仍然找不到正确的答案。 检查了CORS扩展的文档。 我有以下服务器代码启动并运行: var WebSocketServer = require("ws").Server var http = require("http") var express = require('express') var cors = require('cors') var app = express(); app.use(cors()); var port = process.env.PORT || 9000 var server = http.createServer(app) server.listen(port) var count = 0; var clients = {}; var rooms = {}; var wss = new WebSocketServer({server: server}) wss.on("connection", function(ws) […]

Angular问题和“否”Access-Control-Allow-Origin'标题“ – 使用OAuth 2,Passport,Express和Node

我有一个使用节点上运行的OAuth 2的Web应用程序。 使用EJS模板,我能够正确地创build一个工作stream,提示用户login,validation,然后执行“GetUser”GET命令并将输出转储到屏幕上。 最近我试图删除EJS,并希望得到AnguarJS的工作。 目前我已经删除了EJS并实现了Angular,但是有很多奇怪的事情发生,我不知道为什么! 当我的用户点击“login”,他们应该被带到另一个网站,他们login到使用OAuth 2.这个过程工作正常与EJS节点,但是我的angular度控制器加载,正确的部分被加载,但没有数据。 使用Chrome DEV工具查看此过程,我看到以下错误 XMLHttpRequest cannot load http://website/oauth/authorize?… No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 更奇怪的是,在networking标签中,我可以看到正确的请求URL! 如果我复制并粘贴到另一个选项卡我的“GetUser”命令执行,但然后节点崩溃,我的网页失败。 我试过不同的浏览器,启用CORS,configurationCORS。 我知道问题是与Angular,因为我可以成功地使用相同的代码与EJS。 我已经把我的Angular代码放在下面,任何帮助将不胜感激! 服务器端 app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = […]

CORS用node.js和socket.io阻塞

我最近开始学习node.js和socket.io。 我跟着一个简单的教程,socket.io有,而且在我的电脑上运行,一切正常。 但是,我决定将客户端部分上传到服务器进行testing,这就是问题出现的地方。 我想在Web主机上运行聊天客户端,然后在我的计算机或其他主机上运行服务器。 基本上,我计划端口转发服务器,并让客户端运行在网页上。 我打开我的端口端口转发,似乎工作,但我每次都在网页上的错误。 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://24.151.51.34:3000/socket.io/?EIO=3&transport=polling&t=1437399007343-0. (Reason: CORS request failed). 我一直在搞乱代码,希望能够在开始自己的项目之前find解决这个问题的办法,但是我找不到一个办法。 客户端代码是: <!doctype html> <html> <head> <title>Socket.IO chat</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font: 13px Helvetica, Arial; } form { background: #000; padding: 3px; […]

随机错误的请求400与Socket.io 1.0.6错误

我在端口8082上使用Node.js,在端口80上使用Apache。 一切工作正常,并比浏览器开始显示错误消息“400错误请求”,CORS错误。 服务器正在设置CORS头。 正如你所看到的我也使用Redis适配器。 var io = require('socket.io').listen(8082); io.adapter(redis({ host: '127.0.0.1', port: 6379 })); io.set('origins', 'domain.com:*'); 不能说为什么有些时候一切正常,有些时候没有。 当Socket.io尝试从池中升级到websocket时,总是发生错误。 当我从https://cdn.socket.io/socket.io-1.0.6.js使用客户端时,我得到了更less的错误。 当我使用socket.io-1.0.6.js的本地参考时,错误发生频率更高。 找不到错误模式。 在erros之后,我重新启动Node.js服务器,尝试一些请求,一次又一次的工作,错误。 有些时候再次运行而不重新启动服务器。 请求标头示例 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate Accept-Language pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3 Cookie io=RjKzZ6Y1OTQeSEsPAAAL; SGM_DESENV=cb5ae798c2f6f5d3f38c6ed16a6e4696 Host 200.238.251.79:8082 Origin http://200.238.251.79 Referer http://200.238.251.79/maximiliano/sgp/admin/custodiacompartilhada/add User-Agent Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0 响应标题示例 Access-Control-Allow-Credentials true Access-Control-Allow-Origin http://200.238.251.79 Connection keep-alive […]

AngularJS强制Firefox / Safari下载文件,而不是在浏览器中打开

我有一个PDF文件,可以在除Firefox / Safari以外的所有浏览器中下载。 它会在浏览器窗口中打开它,而不是下载该文件。 我的网站运行在node.js之上,并在Azure中托pipe。 用户下载的文件来自Azure blob存储,所以我怀疑这可能是一个CORS问题。 下面是我的客户端代码: <a href="{{fileURL}}" class="btn btn-default" download="myfile.pdf">Download File</a> 这里是服务器端代码: $scope.fileURL = 'https://myblob.blob.core.windows.net/8282020/myfile.pdf'; 更新:我可以通过在下面的帮助中设置Azure中的blob属性来添加内容处置,并且将处置显示为“附件”,但是在FireFox / Safari中它仍然在浏览器中打开。 这是否可能被阻止,因为Azure Blob存储可能被视为CORS? 更新2:添加以下内容到我的HTML标签似乎在FireFox(而不是Safari),这是正确的方式来处理浏览器 type="application/octet-stream" 更新3:通过节点设置内容configuration和内容types似乎正在工作。 我必须问,这是正确的方法吗? blobSvc.setBlobProperties(containerName, filename, { contentDisposition: 'attachment', contentType: 'application/octet-stream' }, function (error, result, response) { // result code here…. })