从离子框架连接到节点js服务时出现CORS错误

时间:2016-05-12 13:17:46

标签: node.js ionic-framework

我在Node js中编写了以下服务。通过浏览器单独访问时,该服务正常工作。

     var http = require('http');
     const PORT=8124; 

     var server = http.createServer(function (request, res){
     //res.setHeader(Access-Control-Allow-Origin, *);

     var json = JSON.stringify({
     id : 1,
     message : 'Hurray it worked'
     });

     res.end(json);
     });


    server.listen(PORT, function(){
       console.log("Server listening on: http://localhost:%s", PORT);
    }); 

我从以下离子应用程序调用上述服务。

     angular.module('starter.controllers', [])

     .controller('LoginCtrl', function($scope, $http) {
     $scope.data = {};

     $scope.login = function() {

     $http.post("http://localhost:8124")
        .success(function(data){

            alert("Success");

        })
        .error(function (error){

              alert(error);

           });       
         }
       })

运行应用程序时出现以下错误。

阻止跨源请求:同源策略禁止在http://localhost:8124/读取远程资源。 (原因:CORS标题' Access-Control-Allow-Origin'缺失)

为了解决CORS问题,我添加了以下代码行

res.setHeader(Access-Control-Allow-Origin,*);

但现在服务本身不起作用。

代码有什么问题吗?

2 个答案:

答案 0 :(得分:0)

您必须用引号括起*

res.setHeader(Access-Control-Allow-Origin, '*');

答案 1 :(得分:0)

尝试使用此Google Chrome扩展程序,它为我解决了很多问题。 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi