2013-07-15 4 views
0

Я создаю приложение с Angularjs и PHP, которые пытаются подключиться к файлу PHP другого домена, но когда я вызываю файл, он никогда не показывает мне info.This мой контроллер ...Войти Angular - PHP error

myapp.controller('loginCtrl', function loginCtrl($scope, $http) { 

$scope.doLogin = function() 
{   
    $http({ 
     method: 'POST', 
     url: 'http://www.domain.com/login.php?', 
     data: 
     { 
      'usuario' : $scope.usuario, 
      'password' : $scope.password, 
      'Type'  : 1 
     }, 

    }) 
    .success(function(data, status) 
    { 
     alert('Validado'); 
     $scope.data = data; 
     if(data == 'No encontrado') 
     { 
      $scope.aviso = 'Usuario o contraseña invalidos'; 
     } 
     else 
     { 
      $scope.aviso = 'Bienvenido'; 
     } 

    }) 
    .error(function(data, status) { 

      $scope.data = data || "FALSE"; 
      $scope.status = status; 
      $scope.aviso = 'Ha pasado algo inesperado'; 
    }); 

}; 

});

И это мой шаблон ...

<div class="container"> 
    <hr> 
    <div class="span5" > 
     <form> 
      <h2 class="form-signin-heading">Login </h2> 
      <label>Usuario</label> 
      <input type="text"  ng-model="usuario"> 
      <label>Contraseña</label> 
      <input type="password" ng-model="password"> 
      <br> 
      <input type="submit" value="Entrar" ng-click="doLogin()" class="btn btn-primary"> 
      <div>{{aviso}}</div> 
     </form> 
    </div> 
</div> 

Но никогда и .success(), когда я использую Mozilla и Chorme поджигатель пуст, но когда я использую:

$http.get('http://www.domain.com/login.php?usuario=user1&password=123456&Type=1') 
    .success(function(data, status).... appears the next error: 

XMLHttpRequest cannot load http://www.domain.com/login.php?usuario=user1&password=123456&Type=1. Origin http://localhost:8081 is not allowed by Access-Control-Allow-Origin. 

Я не смог это исправить, если кто-то знает ответ, я буду этому благодарен.

Благодаря

+1

Посмотрите в CORS и кросс доменного AJAX AngularJS Я верю, что вы найдете то, что вам нужно. – shaunhusain

+0

вы должны включить cors на своем веб-сервере –

ответ

0

Вы должны создать локальный скрипт прокси или включить CORS. CORS можно использовать большинством браузеров, но не для всех. Использование локального прокси-сценария, вероятно, является самой безопасной ставкой. В принципе, все запросы Ajax будут проходить через прокси-сервер, передавая удаленный адрес для использования, тем самым сохраняя соответствие политике доступа к одному домену.

Хорошего PHP прокси: https://github.com/eslachance/php-transparent-proxy

Больше на CORS: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing