2016-04-21 2 views
0

Я не могу избежать этой ошибки в своем браузере - XMLHttpRequest не может загрузить https://xyz.mybluemix.net/get_user_byId.Response в предполетный запрос не проходит проверка контроля доступа: нет заголовка «Access-Control-Allow-Origin» на запрошенный ресурс. Происхождение 'http://a.x.y.z:9000', следовательно, не допускается. В ответе был код статуса HTTP 404.Bluemix Cors disable Node.js

Я использую все меры, необходимые для фактического разрешения вызовов с перекрестным происхождением, но все же это дает мне ошибку.

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

app.use(function(request, response, next) { 
    response.header("Access-Control-Allow-Origin", "*"); 
    response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    response.header("Access-Control-Allow-Methods", "GET, POST, PUT"); 
    next(); 
}); 

app.get('/get_users', cors(), function(req, res) {...} 

Я называю этот API, как - (стандартный $ HTTP угловой способ)

return $http.post(base+"get_user_byId", id) 
+0

может быть, есть * CORS CONFIG * в bluemix, как в АМС – kiro112

ответ

0

Вам нужно всего лишь:

var cors = require('cors'); //Importing this middleware enables CORS 

и

app.use(cors()); 

разрешить CORS в приложениях Express/Connect

Удалить эти строки:

app.use(function(request, response, next) { 
    response.header("Access-Control-Allow-Origin", "*"); 
    response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    response.header("Access-Control-Allow-Methods", "GET, POST, PUT"); 
    next(); 
}); 

и установить GET API с:

app.get('/get_users', function(req, res) {...} 

In angularJS вы необходимо вызвать этот API с методом GET (нет сообщения), потому что вы определили/get_users api с методом get.

Я предлагаю вам использовать этот фрагмент кода:

 var par = { 
     id: myId, 
     }; 
    var app = angular.module('myApp', []); 
    app.controller('myCtrl', function($scope, $http) { 

     $http({ 
      method : "GET", 
      params: par, 
      url : base + "/get_users" 
     }).then(function mySucces(response) { 
      $scope.myData = response.data; 
     }, function myError(response) { 
      $scope.myData = response.statusText; 
     }); 

}); 
+0

Так что я все изменения вы упоминаете, но я все еще получаю эти ошибки –

+0

угловой .js: 9827 ОПЦИИ http://xyz.mybluemix.net/add_user (анонимная функция) @ angular.js: 9827sendReq @ angular.js: 9628serverRequest @ angular.js: 9344processQueue @ angular.js: 13189 (анонимная функция) @ угловая .js: 13205Scope. $ eval @ angular.js: 14401Scope. $ digest @ angular.js: 14217Scope. $ apply @ –

+0

angular.js: 14506 (анонимная функция) @ angular.js: 16232completeOutstandingRequest @ angular.js: 4905 (анонимно функция) @ angular.js: 5285 welcome.html: 1 XMLHttpRequest не может загрузить http://xyz.mybluemix.net/add_user. Ответ на запрос перед полетом не проходит проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Происхождение http: // localhost: 9000 ', следовательно, не допускается. В ответе был код состояния HTTP 502 –

Смежные вопросы