Node.js 盖斯 在MAC上怎么样??Chrome.exe--允许从文件/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome访问文件--允许从文件访问文件管理打开Chrome,但消息仍然显示“XMLH

Node.js 盖斯 在MAC上怎么样??Chrome.exe--允许从文件/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome访问文件--允许从文件访问文件管理打开Chrome,但消息仍然显示“XMLH,node.js,angularjs,rest,express,cors,Node.js,Angularjs,Rest,Express,Cors,盖斯 在MAC上怎么样??Chrome.exe--允许从文件/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome访问文件--允许从文件访问文件管理打开Chrome,但消息仍然显示“XMLHttpRequest无法加载。访问控制不允许源代码允许源代码。”+1我可以使用“open”确认Mac选项的工作情况。我的情况有点不同,因为我只是测试一个完全下载的站点,它可以访问一些本地JSON文件。你能帮我指定具体的位置吗?我的服务器中有以下

盖斯



在MAC上怎么样??Chrome.exe--允许从文件/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome访问文件--允许从文件访问文件管理打开Chrome,但消息仍然显示“XMLHttpRequest无法加载。访问控制不允许源代码允许源代码。”+1我可以使用“open”确认Mac选项的工作情况。我的情况有点不同,因为我只是测试一个完全下载的站点,它可以访问一些本地JSON文件。你能帮我指定具体的位置吗?我的服务器中有以下代码。就在这之后吗?var app=require('express')(),server=require('http')。createServer(app),io=require('socket.io')。listen(server),request=require(“请求”),url=require(“url”);服务器。听(6969);//它在这里吗?换行?@jvandemo我是否必须将app.get('/',function(req,res)更改为…function(req,res,next)?你是我现在最喜欢的人。谢谢。我们可以补充一点,在为像我这样的noob定义路由之前,必须先执行此代码吗?如何在使用请求模块时执行此操作?在我的情况下,它不起作用。仍然出现此错误:“对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access control Allow Origin'标头。因此,不允许对源''进行访问。响应的HTTP状态代码为500。”我必须使用
{Origin:'null'}
为了让它正常工作……显然,我的浏览器发送了
null
作为源代码?为什么要重新发明轮子呢?与代码片段相比,我总是喜欢一个打包的解决方案,一个很好地处理了我需要来自不同源代码的不同方法的用例的小库……并且对于下一个查看它的人来说,代码疲劳更少。谢谢,
app.use(cors({origin:'*}));
对我有效,如。我建议看一看以更好地利用它。它对我来说非常清楚=)。这对我无效!*不是有效的来源“。似乎*字符未被识别为通配符。它适用于我。i、 e.使用通配符“*”。适用于chrome和safari。谢谢;)这和smiley的“if(app.get('allowed origins').indexOf(origin)!==-1)?是一样的吗?
“cors”:“^2.8.5”,“express”:“^4.16.3”只需使用@monikaja建议的行就可以了。谢谢这样做是为了让所有来源/域都能够访问应用程序,而这是您通常不想做的事情。相反,只指定允许的域。经过4-5个小时的搜索,这是唯一对我有效的解决方案。谢谢这是有史以来最好的回答!与socketio合作。谢谢你为我工作
// Api Using Node/Express    
var express = require('express');
var app = express();
var contractors = [
    {   
     "id": "1", 
        "name": "Joe Blogg",
        "Weeks": 3,
        "Photo": "1.png"
    }
];

app.use(express.bodyParser());

app.get('/', function(req, res) {
  res.json(contractors);
});
app.listen(process.env.PORT || 3000);
console.log('Server is running on Port 3000')
angular.module('contractorsApp', [])
.controller('ContractorsCtrl', function($scope, $http,$routeParams) {

   $http.get('localhost:3000').then(function(response) {
       var data = response.data;
       $scope.contractors = data;
   })
<body ng-app="contractorsApp">
    <div ng-controller="ContractorsCtrl"> 
        <ul>
            <li ng-repeat="person in contractors">{{person.name}}</li>
        </ul>
    </div>
</body>
Chrome.exe --allow-file-access-from-files
set chromePath to POSIX path of "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" 
set switch to " --allow-file-access-from-files"
do shell script (quoted form of chromePath) & switch & " > /dev/null 2>&1 &"
// Add headers
app.use(function (req, res, next) {

    // Website you wish to allow to connect
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8888');

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

    // Set to true if you need the website to include cookies in the requests sent
    // to the API (e.g. in case you use sessions)
    res.setHeader('Access-Control-Allow-Credentials', true);

    // Pass to next layer of middleware
    next();
});
var _ = require('underscore');

function allowCrossDomain(req, res, next) {
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');

  var origin = req.headers.origin;
  if (_.contains(app.get('allowed_origins'), origin)) {
    res.setHeader('Access-Control-Allow-Origin', origin);
  }

  if (req.method === 'OPTIONS') {
    res.send(200);
  } else {
    next();
  }
}

app.configure(function () {
  app.use(express.logger());
  app.use(express.bodyParser());
  app.use(allowCrossDomain);
});
var cors = require('cors');

// use it before all route definitions
app.use(cors({origin: 'http://localhost:8888'}));
app.all('*', function(req, res,next) {
    /**
     * Response settings
     * @type {Object}
     */
    var responseSettings = {
        "AccessControlAllowOrigin": req.headers.origin,
        "AccessControlAllowHeaders": "Content-Type,X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5,  Date, X-Api-Version, X-File-Name",
        "AccessControlAllowMethods": "POST, GET, PUT, DELETE, OPTIONS",
        "AccessControlAllowCredentials": true
    };

    /**
     * Headers
     */
    res.header("Access-Control-Allow-Credentials", responseSettings.AccessControlAllowCredentials);
    res.header("Access-Control-Allow-Origin",  responseSettings.AccessControlAllowOrigin);
    res.header("Access-Control-Allow-Headers", (req.headers['access-control-request-headers']) ? req.headers['access-control-request-headers'] : "x-requested-with");
    res.header("Access-Control-Allow-Methods", (req.headers['access-control-request-method']) ? req.headers['access-control-request-method'] : responseSettings.AccessControlAllowMethods);

    if ('OPTIONS' == req.method) {
        res.send(200);
    }
    else {
        next();
    }


});
// Add headers
app.use(function (req, res, next) {

    // Website you wish to allow to connect
    res.setHeader('Access-Control-Allow-Origin', '*');

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

    // Set to true if you need the website to include cookies in the requests sent
    // to the API (e.g. in case you use sessions)
    res.setHeader('Access-Control-Allow-Credentials', true);

    // Pass to next layer of middleware
    next();
});
router.get('/', function(req, res) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); // If needed
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); // If needed
    res.setHeader('Access-Control-Allow-Credentials', true); // If needed

    res.send('cors problem fixed:)');
});
npm i --save cors
var cors = require('cors');
app.use(cors());
app.get('/', function (req, res) {

    res.header("Access-Control-Allow-Origin", "*");
    res.send('hello world')
})
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
<html>

<head>
    <title>413 Request Entity Too Large</title>
</head>

<body>
    <center>
        <h1>413 Request Entity Too Large</h1>
    </center>
    <hr>
    <center>nginx/1.18.0</center>
</body>

</html>
Access to XMLHttpRequest at 'https://api.yourbackend.com' from origin 'https://web.yourfromntend.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
server {
    client_max_body_size 100M;
    ...
}
const express = require('express');
const app = express();

const server = require('http').createServer(app);
const io = require('socket.io')(server, {
    cors: {
        origin: "*",
        methods: ["GET", "POST"]
    }
});