http status code 404 - que - Iónico/Folleto: no se puede obtener el mosaico 404 no encontrado(del caché)
error 404 solucion (1)
Después de muchas pruebas, finalmente instalé el plugin de cordova whitelist y con él, todo volvió a la normalidad.
Realmente todavía no sé por qué hay este cambio con respecto a la lista blanca recientemente. Te mantendré informado si tengo otra información sobre ese cambio e impacto
Estoy bloqueado con un problema que es muy extraño. Estoy usando un folleto con angular-folleto-directiva . En la aplicación anterior, todo funcionó.
Ahora en una aplicación nueva, me gustaría implementar un nuevo mapa de folleto. Por lo tanto, he copiado mi código anterior.
Mi problema es que, se abre el mapa del folleto, se crean mis marcadores, pero
TILES no están cargados
(Tengo derechos de internet y de internet para mi aplicación) Todos los mosaicos que intentan cargarse fallaron y reciben el siguiente problema:
GET http://a.tile.openstreetmap.org/18/98891/132985.png 404 (Not Found)
Como puede ver, si tiene acceso directo al mosaico, puede verlo en el navegador.
Encabezado de cada solicitud Tile GET
GENERAL
Request URL:http://a.tile.openstreetmap.org/18/98892/132984.png
Request Method:GET
**Status Code:404 Not Found (from cache)**
RESPONSE HEADERS
Client-Via:shouldInterceptRequest
REQUEST HEADERS
Provisional headers are shown
Accept:image/webp,*/*;q=0.8
User-Agent:Mozilla/5.0 (Linux; Android 5.0.1; GT-I9505 Build/LRX22C; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/42.0.2311.137 Mobile Safari/537.36
Mi sensación es que está intentando cargarlo desde la memoria caché en lugar de cargarlo directamente desde el proveedor abierto. Todavía no puedo obtener lo que es diferente entre mis 2 proyectos.
Mi otra aplicación de trabajo tiene el siguiente encabezado para cada mosaico:
GENERAL
Remote Address:192.163.219.40:80
Request URL:http://c.tile.openstreetmap.org/18/98818/132892.png
Request Method:GET
Status Code:200 OK
Response Headers
view source
Access-Control-Allow-Origin:*
Cache-Control:max-age=604800
Content-Length:3584
Content-Type:image/png
Date:Fri, 08 May 2015 13:57:36 GMT
ETag:"51fb8a7a0f719b211641dca08bf1d76b"
Expires:Fri, 15 May 2015 13:57:36 GMT
Server:Apache/2.4.7 (Ubuntu)
Via:1.1 nadder-02.openstreetmap.org:3128 (squid/2.7.STABLE9)
X-Cache:MISS from nadder-02.openstreetmap.org
X-Cache-Lookup:MISS from nadder-02.openstreetmap.org:3128
Request Headers
view source
Accept:image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:fr-FR,en-US;q=0.8
Connection:keep-alive
Host:c.tile.openstreetmap.org
User-Agent:Mozilla/5.0 (Linux; Android 5.0.1; GT-I9505 Build/LRX22C; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/42.0.2311.137 Mobile Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:01BAB1E4-1122-4CEF-AC90-BDE2C1113EF4
X-Requested-With:com.myapp.myapp
Configuración AngularJS
La memoria caché está desactivada.
$httpProvider.defaults.cache = false;
También probé el siguiente aditivo ya que HTTP TILE LOADING es get (no exitoso)
//initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
//disable IE ajax request caching
$httpProvider.defaults.headers.get[''If-Modified-Since''] = ''Mon, 26 Jul 1997 05:00:00 GMT'';
// extra
$httpProvider.defaults.headers.get[''Cache-Control''] = ''no-cache'';
$httpProvider.defaults.headers.get.Pragma = ''no-cache'';
HTML Creación de directiva de folleto
<div data-tap-disabled="true" style="height: 90%; {{iosPlatform ? ''top:10%; position:relative'' : ''''}}">
<leaflet id="map" defaults="defaults" center="center"
bounds="bounds" event-broadcast="events" markers="markers"
height="100%" width="100%" class="animation" layers="layers"></leaflet>
</div>
Código AngularJS
angular.extend($scope, {
center: {
lat: -2.6273,
lng: -44.1932,
zoom: 18
},
markers: {},
defaults: {
scrollWheelZoom: true
},
bounds: {
southWest: {
lat: -2.628074696286876,
lng: -44.19960723876953125,
},
northEast: {
lat: -2.629410211532874,
lng: -44.19617401123046874,
}
},
events: {
map: {
enable: [''popupopen''],
logic: ''emit''
}
},
tiles: {
url: ''https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'',
options: {
attribution: ''''
}
},
layers: {
"baselayers": {
"osm": {
"name": "Cidade",
"url": "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
"type": "xyz",
"layerParams": {},
"layerOptions": {}
}
},
overlays: {
}
},
controls: {}
});
Cuando abro mi mapa, llamo a la siguiente función:
$scope.getMyMap = function() {
var d = $q.defer();
leafletData.getMap(''map'').then(function(map) {
$scope.map = map;
map.invalidateSize();
d.resolve(map);
}, function(err) {
d.reject(err);
});
return d.promise;
};