繁体   English   中英

为PUT / DELETE请求在Ionic中启用CORS

[英]Enabling CORS in Ionic for a PUT/DELETE Request

对于我的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');

   });

尝试如下更改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(); }); 

尝试安装npm install cors ,然后

var express  = require('express');
var cors = require('cors');

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

这将解决所有cors问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM