Angularjs 跨来源请求

Angularjs 跨来源请求,angularjs,node.js,express,Angularjs,Node.js,Express,我想上传从前端备份的图像…我将使用ngFileUploader bower组件。 我的前端代码是: function SampleController(SampleData,Upload,$http) { var vm = this; vm.uploadFiles = function(files, errFiles) { Upload.upload({ url: "localhost:5000/upload", //webAPI expose

我想上传从前端备份的图像…我将使用ngFileUploader bower组件。 我的前端代码是:

function SampleController(SampleData,Upload,$http) {
      var vm = this;
      vm.uploadFiles = function(files, errFiles) {
        Upload.upload({
      url: "localhost:5000/upload", //webAPI exposed to upload the file
      data: {
        file: files
      }
    }).then(function(resp) {
      console.log(resp)});
    }
我将在它的html文件中添加ngf select。 它将显示错误-- XMLHttpRequest无法加载localhost:5000/上载。跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源。 如何解决此问题???

您需要添加以下内容:

header('Access-Control-Allow-Headers: Content-Type');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Origin: *');

我的项目后端是laravel。因此,我将其包含在路由文件中。

将cors过滤器作为中间件添加到您的应用程序中

var app = require('express')();
app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
  res.header('Access-Control-Allow-Methods', ['GET', 'PUT', 'POST', 'DELETE']);
  next();
});

我建议您将允许的来源列为白名单。

url:http://localhost:5000/upload“
URL的前面被省略。投票关闭是一个输入错误。它会再次给出错误——POST 404(未找到),所以你运行在3000并上传到端口5000?这是一个跨域调用。您需要添加CORs标题。我已经添加了CORs标题。。。但它会再次出现同样的错误…我的备份是在expressJS中。因此,我是否需要包含这些头文件,请访问:否。。它不起作用。。。再次给出相同的postConfirm错误,您的服务器运行于:3000,客户端运行于:5000?如果是这样,则客户端中的url必须为。如果您正在访问另一个域,请确保将http://添加到url中