在Http上调用Https url获取请求angularjs

问题描述 投票:1回答:1

我有一个Https网址,并希望发送请求从该网址获取数据,方案1:从我的浏览器如果我点击网址我得到响应,而从我的Angularjs应用程序我总是得到错误401,但如果我点击了Api从浏览器我总是得到正确的答复

出于安全考虑,我不能在这里使用Url,但我想要的是:

  $http({
        method: "GET",
        url: "https://urlAdresss/",
        headers: {
            "Accept-Language": "en-US, en;q=0.8",
            "Content-Type": "application/json;charset=UTF-8"
        },
    }).then(function (_response) {
        console.log(_response
     }

我总是未经授权我是网络以及在控制台上任何帮助将不胜感激,

但如果我从浏览器中找到相同的Url,我会得到响应这意味着后端工作正常

我想我在获取请求中遗漏了一些错误的原因

angularjs angularjs-http
1个回答
2
投票

这似乎是一个CORS(跨源资源共享)问题。

在AngularJS方面,您应该使用以下配置,以便$http服务自动将授权标头发送到http请求。

var app = angular.module('app', [])
    .config(function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        $httpProvider.defaults.withCredentials = true;
    });

在后端你应该明确指定允许的起源(例如.http://localhost:8888)。 另外,请注意来自here的一些观点。

如果要允许凭据,则Access-Control-Allow-Origin不得使用*。