在localhost上测试应用程序的CORS?

时间:2015-11-13 02:54:40

标签: angularjs web-services cakephp

我正在尝试在浏览器上测试应用。问题是我的web服务也是在localhost中,当我尝试对webservice执行一些请求时,CORS异常的返回表示相同的原始策略。寻找解决方案我发现了一种在Firefox上执行这种方式禁用CORS的方法:about:config -> security.fileuri.strict_origin_policy -> false但不起作用。

我怎么解决这个问题?

我使用CakePHP创建了Web服务。

CakePHP网络服务功能

/** do login in app */
public function doLogin(){            
            $this->autoRender = false;
            $this->response->header('Access-Control-Allow-Origin', '*');
            $this->response->type('json');                
            $retorno = array("email"=>"me@gmail.com", "senha"=>"senha");            
            return json_encode($retorno);
}

尝试添加控制器的beforeRender

public function beforeRender() {
            header("Access-Control-Allow-Origin: *");
            parent::beforeRender();
        }

AngularJS

var app = angular.module("starter");

app.service("UserLoginAPI", function($http, AppConstants, Base64){
    this.doLogin = function(User){
        var _url = "http://localhost/AppPanel/users/doLogin.json";
        var _authdata = Base64.encode(User.email + ':' + User.senha);

        var _headers = {
                'Authorization': 'Basic ' + _authdata,
                'Accept': 'application/json; charset=utf-8',
                'Content-Type': 'application/json; charset=utf-8'               
            };

        return $http({
            method: 'POST',             
            url: _url,              
            headers: _headers               
            });         

    };
});

1 个答案:

答案 0 :(得分:1)

解决了这个问题。我在Chrome快捷方式中添加了这些参数,现在工作正常。 --args --allow-file-access-from-files --disable-web-security