2014-11-27 3 views
1

мне нужно сделать запрос Крест домена с помощью Угловая, но я получил ошибкуМеждоменное Запрос с AngularJS не работает

XMLHttpRequest cannot load http://machine_name_in_my_network:8082/GetAll. No 

«Access-Control-Allow-Origin» заголовок присутствует на запрошенный resource. Origin 'http://localhost:53379' is therefore not allowed доступ. Ответ получил код статуса HTTP 500.

Я увидел here образец решения, но не работал для меня.

Это запрос моего локального хоста на машину в моей сети и должен вернуть JSON.

Код сниппета

//Controller 
function crmContatosCtrl($scope, apiService) { 
    apiService.get('/GetAll').then(function (data) { 
     $scope.contatos = data; 
    }); 

, а затем приходит к моим службам

function comWebApi_Service($http, $log) { 
    return { 
     get: function (url, data) { 

      //return $http.jsonp(ApiURL + url) 
      // .success(function (data) { 
      //  debugger; 
      // }) 
      // .error(function (data) { 
      //  debugger; 
      // }); 

      return $http.get(ApiURL + url, data).then(
       function (res) {     
        return res.data; 
       }); 
     }, 

    angular 
     .module('app') 
     .config(['$httpProvider', function($httpProvider) { 
      $httpProvider.defaults.useXDomain = true; 
      delete $httpProvider.defaults.headers.common['X-Requested-With']; 
     }]) 
     .service('apiService', comWebApi_Service); 
+0

вы можете показать, что вы видите на вкладке сети ... ответ ?? – harishr

+0

@harish Появляется 'Этот запрос не имеет доступных данных ответа. ', С ошибкой 500 –

+0

Вы не можете просто включить cors, установив заголовок на стороне клиента, сервер, на который вы делаете запрос, должен иметь CORS включен –

ответ

1

необходимо активировать корсеры на сервере

e.g. Инициализировать глобально

var cors = new EnableCorsAttribute("*", "*", "*"); 
    config.EnableCors(cors); 

подробнее об этом here ... прочитайте раздел Scope Rules for [EnableCors]

1

Это пропущенный код на сервере стороны , а не в коде браузера AngularJS. Вы делаете не нужна любая из этих строк с недавними сборками angularjs. Они оба основаны на устаревшей информации (они не сломают ничего, они просто излишние и основаны на устаревших copypasta):

$httpProvider.defaults.useXDomain = true; 
delete $httpProvider.defaults.headers.common['X-Requested-With']; 

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

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