我在尝试访问本地JSON文件时遇到错误。这是我从json中获取数据的函数。
$scope.getJSON = function () {
(self.servicioObj = jsonFactory.GetJson('data.json')).then(
function (dataResponse) {
$scope.datosJson = [];
$scope.datosJson = dataResponse.data;
self.servicioObj.detenerTiempo();
}, function (error) {
self.servicioObj.detenerTiempo();
});
}
这是我的工厂代码。
function jsonFactory($http, $q) {
var self = this;
self.urlBase = 'http://192.168.0.17:8383/NewFrontEnd/app/pages/';
self.jsonFactory = {};
self.tiempoEspera = 120000;
self.jsonFactory.GetJson = function (metodo) {
var tiempo = $q.defer();
var url = self.urlBase + metodo;
var peticion = $http({
method: 'get',
url: url,
headers: {'Access-Control-Allow-Origin': '*'},
cache: false,
timeout: tiempo.promise
});
return self.jsonFactory;
}
当我调用getJSON函数时,我收到此错误消息。
XMLHttpRequest cannot load http://192.168.0.17:8383/NewFrontEnd/app/pages/data.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8383' is therefore not allowed access.
我不知道为什么我收到这个错误如果我放入urlBase localhost而不是192.168.0.17我可以毫无问题地访问JSON文件
答案 0 :(得分:2)
如果我输入urlBase localhost而不是192.168.0.17,为什么我会收到此错误
由于localhost
和192.168.0.17
是不同的主机名,因此它们的来源不同。
如果您将HTML文档加载到一个并使用XHR请求另一个,您将发出跨源请求。
要么不混合原点,要么配置服务器以输出相应的Access-Control-Allow-Origin
标题。