用angular测试请求本地的json数据,请求出错,提示跨域,我的代码如下:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>angular使用http请求数据</title>
<script src="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"></script>
</head>
<body ng-app="app" ng-controller="testCtrl">
<h1>angular使用http请求数据</h1>
请求结果:{{resultData}}
<script>
var module=angular.module("app",[]);
module.controller("testCtrl",function($scope,$http){
$http({
method:"GET",
url:"test.json"
}).then(function successCallback(res){
$scope.resultData=res.data;
}).then(function errorCallback(res){
$scope.resultData="请求出错啦";
});
});
</script>
</body>
</html>
test.json代码如下:
{
"sites": [
{
"Name": "Google",
"Url": "www.google.com",
"Country": "USA"
},
{
"Name": "Facebook",
"Url": "www.facebook.com",
"Country": "USA"
},
{
"Name": "微博",
"Url": "www.weibo.com",
"Country": "CN"
}
]
}
原因:因为浏览器为了出于安全考虑把请求本地视为跨域请求。
解决办法:
第一步:关闭谷歌浏览器;
第二步:ctrl+r输入cmd进入控制台,输入如下命令:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
注意:一定要先关闭浏览器才生效哦;然后再打开html文件就可以获取到数据了。