以下是我的" app.js"的代码。 :
var app = angular.module('WebUI',[]);
app.config(function($httpProvider){
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
app.config(function($locationProvider){
$locationProvider.html5Mode(true);
});
这是我的控制器的代码:
var Controller = function ($scope,$http)
{
$scope.thingsList=[];
$http({method: 'GET', url: 'http://192.168.1.4/search'}).success(function(data)
{
results=data.results;
angular.forEach(results,function(result)
{
$scope.thingsList.push(result.split('/')[1]);
});
}).error(function(data){});
}
以下是我的HTML页面的代码:
<!DOCTYPE html>
<head>
<title>All</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
<script src="controller.js" type="text/javascript"></script>
</head>
<body>
<a href="home.html">HOME</a>
<div id='content' ng-app='WebUI' ng-controller='Controller'>
<li ng-repeat="thing in thingsList">
<a href="home.html">{{thing}}</a>
</li>
</div>
</body>
</html>
这里的要点是我使用ng-repeat和我从controller.js获得的列表生成链接。但是,当我点击&#34; HOME&#34;它会重定向到主页,当我点击任何&#34;事情&#34;即生成的链接,然后它会抛出一个错误:
Error: Failed to execute 'pushState' on 'History': A history state object with URL 'file:///home/abc/home.html' cannot be created in a document with origin 'null'.
我尝试在线搜索此错误但找不到任何有用的内容。所以,如果有人知道问题出在哪里,请帮助:)
答案 0 :(得分:2)
A history state object with URL 'file:///home/abc/home.html' cannot be created in a document with origin 'null'.
似乎你在文件网址上使用角度路由,没有服务器。
尝试使用服务器。
答案 1 :(得分:1)
实际上找到了我自己的问题的答案。
我在网上搜索过,发现生成太多"file:///"
个链接会导致出现安全问题,导致他们不被允许这样做。
然后我尝试在服务器http://
上托管并测试,然后更改了网址,但页面未刷新...所以再次出错。
然后我发现了
`app.config(function($locationProvider){
$locationProvider.html5Mode(true);
});`
这部分代码抛出了错误,因为我无法使用ng-route
和其他东西。
但是位置需要此代码来解析URL中的get参数,因此我从What's the most concise way to read query parameters in AngularJS?获取了引用,并且我能够使用另一种方式传递URL中的get参数:url#/?target=bob
和我现在能够解析参数。
问题解决了。 $location
能够解析参数,我现在也可以访问之前给出错误的链接。
答案 2 :(得分:0)
答案 3 :(得分:0)
尝试使用窗口位置:
<li ng-repeat="thing in thingsList">
<a ng-click="gotoHome()">{{thing}}</a>
</li>
在JS中,
$scope.gotoHome = function(){
window.location="#/home";
//Give your link above.
}
希望它有所帮助...