not invalid have has for does code javascript php angularjs post http-status-code-404

javascript - have - response for preflight has invalid http status code 405 web api



Ionic+Angular: cómo evitar el "404 no encontrado(del caché)" después de la solicitud POST? (5)

esta pregunta apunta en parte a mi pregunta anterior: Ionic + Angular POST request return state 404

Pero no pude encontrar una solución de trabajo.

El problema es siguiente:

si solicito desde la aplicación móvil que se ejecuta en el dispositivo siempre recibo la respuesta 404:

Request Method:POST Status Code:404 Not Found (from cache) Request Headersview source Accept:application/json, text/plain, */* Content-Type:text/plain Origin:file:// User-Agent:Mozilla/5.0 (Linux; Android 4.4.2; Lenovo Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 Request Payloadview source {,…}

Pero si probé la misma solicitud en el escritorio utilizando el complemento Postman en el navegador Chrome, siempre recibo la respuesta 200 con los datos que necesito.

Pensé que era un problema causado por el método http angular, pero en la publicación anterior me di cuenta de que no es cierto.

¿Cómo puedo evitar esto por favor? ¿Debo establecer algunos encabezados en HTML de la aplicación, durante la solicitud o en el lado del servidor (PHP)?

Muchas gracias por cualquier consejo.

EDITAR:

Intenté también establecer el caché: falso de esta manera:

$http({ method : ''POST'', url : $scope.remoteUrl, data: postData, headers: headersData, cache: false, timeout: 10000 // success response })

Pero sin suerte.


Después de muchas horas, encontré una solución que funcionaba: ejecutar cordova plugin add cordova-plugin-whitelist

En mi caso, ya había configurado config.xml e index.html en origen, como se menciona aquí y en otros lugares.


Tuve el mismo problema y pude resolverlo agregando el siguiente complemento:

ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git


Tuve el mismo problema, nada me ayudó, entonces simplemente eliminé el plugin de la lista blanca:

cordova plugin remove cordova-plugin-whitelist

luego renuellada

cordova plugin add cordova-plugin-whitelist

entonces funcionó


Tuve un problema similar con el inicio de sesión de Firebase en mi dispositivo Android, pero pude iniciar sesión en el navegador.

cordova plugin remove cordova-plugin-whitelist cordova plugin add cordova-plugin-whitelist

Usó las líneas anteriores para resolver el problema.


Mucha gente está experimentando eso .

Me encontré con el mismo problema. Parece que tiene que ver con una nueva política de seguridad en las nuevas versiones de Cordova.

Así es como lo resolví:

Instalé el complemento de la lista blanca de Cordova :

cordova plugin add cordova-plugin-whitelist

Luego, agregue su política de contenido en su index.html como metaetiqueta (usando su propio host o ''*'' para aceptar todas las solicitudes):

<meta http-equiv="Content-Security-Policy" content="default-src ''self'' yourhost.com ws://localhost:35729 data: gap: https://ssl.gstatic.com; style-src ''self'' ''unsafe-inline''; media-src *;script-src ''self'' localhost:35729 ''unsafe-eval'' ''unsafe-inline'';">

default-src se usa para solicitudes generales; el host ws://localhost:35729 se usa para live-reload en ionic serve .

script-src se usa para la ejecución segura de scripts

unsafe-inline e unsafe-eval son necesarios para que angular funcione correctamente.

data: gap: https://ssl.gstatic.com solo se usa en iOS.

self significa el host actual del archivo index.html .

Tendrás que agregar el tuyo para que tus solicitudes funcionen. No olvides agregar el protocolo y el puerto si no son estándar

Puede omitir la metaetiqueta si no la quiere, pero obtendrá un montón de advertencias del complemento de la lista blanca.

Más información sobre cómo configurar esto en el archivo Léame del complemento .

Luego reconstruye tu aplicación, y debería funcionar de nuevo.