在发送ajax请求时使用Angular获取.json文件时发生错误?
问题描述:
我有由后端创建的.json
文件。现在我试图使用Angular.js
来发出ajax请求,所以我的前端可以使用我的.json
文件中的数据。在发送ajax请求时使用Angular获取.json文件时发生错误?
这里是通向我.json
文件:
C:\Users\Mykhaylo Vayvala\Desktop\carBuyer\topCarObj.json
这里是我的html文件:
<!DOCTYPE html>
<html ng-app="MyApp">
<head>
<title>Top cars</title>
<head>
<body ng-controller="PostsCtrl">
<p>{{posts}}</p>
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript" src="carApp.js"></script>
</body>
</html>
这里使用Angular.js我的JavaScript文件:
var app = angular.module("MyApp", []);
app.controller("PostsCtrl", function($scope, $http) {
$http.get('topCarObj.json').
success(function(data, status, headers, config) {
$scope.posts = data;
}).
error(function(data, status, headers, config) {
alert("AJAX failed")
});
});
当我在浏览器中运行我的html文件时,在控制台中出现以下错误:
XMLHttpRequest cannot load file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/topCarObj.json. Cross origin requests are only supported for HTTP. angular.min.js:78
Error: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/topCarObj.json'.
at Error (native)
at file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:78:466
at v (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:73:464)
at g (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:71:294)
at I (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:100:144)
at I (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:100:144)
at file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:101:308
at k.$eval (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:112:32)
at k.$digest (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:109:121)
at k.$apply (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:112:362)
我做了什么错,我该如何解决这个问题?
答
主机应用程序到本地主机或尝试其他浏览器。
对于铬可以通过允许这样的:
chrome.exe --allow-file-access-from-files
不能使用XMLHttpRequest来获得与绝对路径本地主机文件。您必须使用** http://...**,即** http:// localhost:8080/file.json **。 – fntneves 2014-08-31 12:07:23