Url在$ http.get电话中的内容是什么?

时间:2017-08-17 20:43:54

标签: javascript angularjs http-headers

我有一个由AngulraJs应用程序提供服务的简单页面。该页面的div值为Test。

<div id="test">Test</div>

我的目标是从localhost读取此值。基本上,我正在为一个应用程序编写一个插件。此应用程序是一个桌面应用程序,内置自己的Web服务器,插件是用JavaScript编写的。我的目标是读取测试值。我面临的问题是我被CORS阻止了。

从我读过的所有内容(我已经阅读了很多内容)中,我需要添加Access-Control-Allow-Origin标题才能使其正常工作。我的问题是如何仅为一页添加带角度js的标题。

我找到了以下SO答案:Set HTTP header for one request
我还阅读了很多文档,例如:https://docs.angularjs.org/api/ng/service/ $ http

然而,我仍然感到困惑是一件事:

输入的网址,我的情况应该是什么?考虑下面的例子,如果Angularjs应用程序位于www.somedomain.com并且我的localhost机器上的javascript代码调用它,你将如何编写它以适用于我的情况。

$http.get('what url goes here?', {
    headers: {'Access-Control-Allow-Origin': '*'}
});

我还有一个小的子问题,在上面的例子中,我是否会覆盖任何现有的标题,还是只会附加一个新标题?

编辑:

用于回页的Angularjs代码:

(function() {
    'use strict';
    angular
        .module('App')
        .controller('Test', Test);

    function Test($scope, $http) { 
        var T = this;
        T.test = test;

        function test(){
            return "Test";
        }
    }
})();

HTML

<div id="test">{{T.test()}}</div>

1 个答案:

答案 0 :(得分:1)

必须在返回的标头上设置标头Access-Control-Allow-Origin,而不是请求标头。 因此,请将服务器配置为返回页面'what url goes here?'以使该标头返回。

如果您无法控制'what url goes here?',则必须使用您的网络服务器编写代理:网络服务器获取该网页内容,然后返回您的脚本。