相关疑难解决方法(0)

AngularJS $ http,CORS和http身份验证

因为在AngularJS中使用CORS和http认证可能很棘手,所以我编辑了这个问题,分享了一个学到的课程.首先,我要感谢igorzg.他的回答对我很有帮助.方案如下:您希望使用AngularJS $ http服务将POST请求发送到其他域.获取AngularJS和服务器设置时需要注意几个棘手的事情.

第一:在您的应用程序配置中,您必须允许跨域调用

/**
 *  Cors usage example. 
 *  @author Georgi Naumov
 *  gonaumov@gmail.com for contacts and 
 *  suggestions. 
 **/ 
app.config(function($httpProvider) {
    //Enable cross domain calls
    $httpProvider.defaults.useXDomain = true;
});
Run Code Online (Sandbox Code Playgroud)

第二:您必须指定withCredentials:true并将用户名和密码指定为请求.

 /**
  *  Cors usage example. 
  *  @author Georgi Naumov
  *  gonaumov@gmail.com for contacts and 
  *  suggestions. 
  **/ 
   $http({
        url: 'url of remote service',
        method: "POST",
        data: JSON.stringify(requestData),
        withCredentials: true,
        headers: {
            'Authorization': 'Basic bashe64usename:password'
        }
    });
Run Code Online (Sandbox Code Playgroud)

Тhird:服务器设置.你必须提供:

/**
 *  Cors usage example. 
 *  @author Georgi Naumov
 *  gonaumov@gmail.com …
Run Code Online (Sandbox Code Playgroud)

cors angularjs

88
推荐指数
1
解决办法
14万
查看次数

AngularJS,PHP Restful Cors问题

我有一个问题试图对我的其他php服务器进行$ http调用.我正在从客户端到后端进行跨域调用.

从我的Angular应用程序中,这是$ http服务的配置方式:

.config(['$httpProvider', function($httpProvider) {
    $httpProvider.interceptors.push('httpResponseInterceptor');
    $httpProvider.interceptors.push('httpTimeStampMarker');
    $httpProvider.defaults.useXDomain = true;
    $httpProvider.defaults.headers.post['Access-Control-Allow-Origin'] = '*';
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
    delete $httpProvider.defaults.headers.common['Content-Type, X-Requested-With'];
}])
Run Code Online (Sandbox Code Playgroud)

这是实际的$ http.post()配置方式:

    // Set the headers
    var headers = {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': '*'
    };

    return $http({
            method: "POST",
            url: base_url,
            data: $.param(args),
            headers: headers
        })
        .success(function(data, status) {

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

        });
Run Code Online (Sandbox Code Playgroud)

这是服务器的.htaccess:

# Cors
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Allow-Methods"
Header add …
Run Code Online (Sandbox Code Playgroud)

php rest cors angularjs

3
推荐指数
1
解决办法
6827
查看次数

标签 统计

angularjs ×2

cors ×2

php ×1

rest ×1