我有一个由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>
答案 0 :(得分:1)
必须在返回的标头上设置标头Access-Control-Allow-Origin
,而不是请求标头。
因此,请将服务器配置为返回页面'what url goes here?'
以使该标头返回。
如果您无法控制'what url goes here?'
,则必须使用您的网络服务器编写代理:网络服务器获取该网页内容,然后返回您的脚本。