0

Angularjs と PHP を使用してアプリを作成しています。これらは、他のドメインのファイル PHP に接続しようとしていますが、ファイルを呼び出すと、情報が表示されません。これは私のコントローラーです...

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 を使用すると、firebug は空になりますが、使用すると:

 $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.

私はそれを修正できませんでした。誰かが答えを知っていれば、感謝します。

ありがとう

4

1 に答える 1

1

ローカル プロキシ スクリプトを作成するか、CORS を有効にする必要があります。CORS はほとんどのブラウザーで使用できますが、すべてではありません。おそらく、ローカル プロキシ スクリプトを使用するのが最も安全な方法です。基本的に、すべての Ajax リクエストは、使用するリモート アドレスを渡すプロキシを通過し、それによって同一ドメイン アクセス ポリシーに沿ったものになります。

優れた PHP プロキシ: https://github.com/eslacchance/php-transparent-proxy

CORS の詳細: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

于 2013-08-13T17:15:03.667 に答える