带有Basic Auth的$ http.get()在AngularJS的OPTIONS调用失败,IONIC

时间:2016-06-16 09:50:04

标签: javascript http ionic-framework get cors

我正在使用离子应用程序拨打以下代码: -

var req={
			method: "GET",
			url: "<Some URL>",
			headers:{
			"Authorization": "Basic YjEyMDMwOmJjb25lQDEyMw=="
			}
		}
		$http(req).then(function success(){
			alert("Yesss");
		},function failure(a,b,c){
			alert("nahhh");
		})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

下图显示了OPTIONS调用失败。

Failing call in console

而SAPUI5中的同一调用工作正常,而内部使用oModel.Read()操作来处理CORS。 以下是成功的电话截图: -

Passing call in console

我做错了什么?或者甚至可以从AngularJS应用程序进行基于CORS的调用?

EDIT1:

我刚刚注意到,如果我给头文件授权,其余的头文件将被忽略,而接受文件/普通文件......等等 但是如果不存在授权头,则需要Accept和其他参数,但由于我的服务是基于身份验证的基础,它需要这个头,现在我该如何破解它?

EDIT2: 我在$ .get ajax调用中尝试了同样的事情,并注意到,如果我传递“Authorization”标头或任何其他随机标头如“doijwoid”请求标头调用中没有显示其他标头,但是当我省略此标头时其他标头如“接受“按代码编写。

$.get({url:"<SRV URL>",headers:{"Accept":"application/json"}}, function(data, status){
            alert("Data: " + data + "\nStatus: " + status);
        });

[没有授权标题的Ajax调用] [3]

[使用授权标题调用并接受,但接受未采用的标题] [4]

1 个答案:

答案 0 :(得分:0)

你在服务器上检查过CORS吗?