angularjs - resource - header cors angular
La solicitud se redirigió a ''https://..com/site/login?'', Que no está permitida para solicitudes de origen cruzado que requieren verificación previa. (1)
Antes de publicar esta pregunta, he pasado por la mayoría de las preguntas de desbordamiento de pila pero no obtuve una respuesta
Estoy intentando acceder a una API de cliente que hará la autenticación de Oauth así que cuando llamo a la API debería lanzar una ventana emergente para autenticación similar a fb auth, pero estoy terminando con un error en mi consola de Chrome como a continuación
XMLHttpRequest no puede cargar https://api.springrole.com/authorize ?
scope = XXXX y redirect_uri = http: // localhost: 8080 / CheckRest / springrole.html & response_type = XXXX y client_id = XXXXXXXX . La solicitud se redirigió a '' https://springrole.com/site/login?api_login=1&scope=XXXX&state=&error=invalid_request '', que no está permitida para solicitudes de origen cruzado que requieren verificación previa.
Acabo de enmascarar algunos de los valores con XXX por motivos de seguridad. y mi solicitud se ve a continuación
$http({
method : ''GET'',
url : url,
headers : {
''Content-Type'' : ''application/json'',
"Access-Control-Allow-Origin": "https://api.springrole.com",
"Access-Control-Allow-Methods":"GET",
"Access-Control-Allow-Credentials": true
}
}).success(function(data, status, headers, config) {
$scope.details.response = JSON.stringify(data);
console.log("success" + data)
})
si elimino los encabezados en la solicitud, obtengo el siguiente error mostrado
Ningún encabezado ''Access-Control-Allow-Origin'' está presente en el recurso solicitado. El origen '' http: // localhost: 8080 '' no está, por lo tanto, permitido.
cualquier sugerencia o trabajo será apreciada.
Sí, te estás encontrando con la Política de Mismo Origen que está en vigencia por razones de seguridad. En pocas palabras, básicamente estás solicitando / abriendo algo de un origen diferente que no es muy seguro. Si lo desea, puede desactivarlo temporalmente en Chrome agregando el argumento --disable-web-security
.
Entonces desde la Terminal puedes ejecutar
open -a Google/ Chrome --args --disable-web-security
Lo hago a menudo así que terminé simplemente agregando y alias a mi .bash_profile
para poder acceder a él fácilmente
# Run Insecure Chrome
alias insecure-chrome=''open -a Google/ Chrome --args --disable-web-security''
Luego, en la Terminal I, puedo llamar a insecure-chrome
y aparece Chrome. Sabrá que funcionó si ve la advertencia de seguridad en la parte superior. La advertencia se ve así
Y por supuesto, advertencia obligatoria tenga cuidado al hacer esto . No navegaría en la web de esta manera, pero si trabajas localmente, estarás bien.
Para los usuarios de Windows, puede navegar a la carpeta donde está instalado y configurado Chrome
chrome.exe --user-data-dir = "C: / temp" --disable-web-security
Asegúrate de cerrar todas las instancias de Chrome antes de hacer esto o de lo contrario no funcionará.