【问题标题】:Enabling CORS in Ionic for a PUT/DELETE Request在 Ionic 中为 PUT/DELETE 请求启用 CORS
【发布时间】:2016-12-03 12:49:33
【问题描述】:

对于我的 Ionic 应用程序,我使用的是我创建的 API,我可以向它发出简单的 HTTP 请求。在我的 API 中,我通过将以下内容添加到 server.js 来启用 CORS:

//ENABlE CORS
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

所以我的 GET 和 POST 请求工作得很好。但是,我的 PUT 请求返回错误“在预检响应中 Access-Control-Allow-Methods 不允许方法 PUT”。如何专门针对 PUT/DELETE 解决此问题?

将请求放入controller.js

var link = 'https://cs496-app3.herokuapp.com/api/person/';
   var obj = {
     'name' : $scope.data.name, 
     'email_address': $scope.data.email,
     'location' : $scope.data.location
   };

   var ls = UserProfile.getAll();
   console.log(ls);
   var curProfile = ls[0];
   var prevName = curProfile.name;

   $http.put(link + prevName, JSON.stringify(obj)).then(function (res){
      alert("Successfully updated your account information")
       console.log("put successful");
       $state.transitionTo('tab.profile');

   });

【问题讨论】:

    标签: javascript angularjs node.js ionic-framework


    【解决方案1】:

    尝试在 server.js 中更改您的 CORS 设置,如下所示;

    //ENABlE CORS
    app.use(function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Methods","GET, POST, OPTIONS, PUT");
      res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
      next();
    });

    【讨论】:

      【解决方案2】:

      尝试安装npm install cors,然后

      var express  = require('express');
      var cors = require('cors');
      
      var app = express();
      app.use(cors());
      

      这将处理所有 cors 问题。

      【讨论】:

      • 这是一个 AngularJS 应用程序而不是 node.js。
      • 我的移动应用是 Angular 应用,但我的 API 是内置在节点中的
      • 这就是我的猜测。我相信 chrome 会为服务器响应允许的每个不那么简单的 http 调用发送预检请求。只需尝试我在节点中建议的代码,它可能会有所帮助。在节点中启用 Cors 将轻松处理预检。
      猜你喜欢
      • 1970-01-01
      • 2013-07-04
      • 2016-12-02
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 2010-09-24
      • 2015-10-28
      • 2017-03-10
      相关资源
      最近更新 更多