我正在使用离子应用程序拨打以下代码: -
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调用失败。
而SAPUI5中的同一调用工作正常,而内部使用oModel.Read()操作来处理CORS。 以下是成功的电话截图: -
我做错了什么?或者甚至可以从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]
答案 0 :(得分:0)
你在服务器上检查过CORS吗?