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时,萤火虫是空的,但是当我使用时:

 $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/eslachance/php-transparent-proxy

有关 CORS 的更多信息:http ://en.wikipedia.org/wiki/Cross-origin_resource_sharing

于 2013-08-13T17:15:03.667 回答