Estoy tratando de obtener información de un SystemLinkServlet.
Así que traté de ejecutar este código JavaScript desde Nintex Forms (Sharepoint):
var http = new XMLHttpRequest(); var url = 'www.exampleservlet.com'; var params = "anyxml" http.open('POST', url, true) http.setRequestHeader('Content-type', 'application/xml'); http.setRequestHeader('Access-Control-Allow-Origin', '*'); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { alert(http.responseText); } }; http.send(params);
Pero todavía tengo este error en mi consola:
Access to XMLHttpRequest at 'www.exampleservlet.com' from origin 'www.exampleorigin.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Parece que el encabezado se ignora o tal vez no puedo configurar varios encabezados de solicitud.
Funciona en Postman.
Actualizar
Así que funcionó con una extensión, pero aparentemente no puedo establecer encabezados con código JavaScript en mis Nintex Forms.
Estoy tratando de encontrar para pasar esos encabezados sin usar una extensión.
Si está utilizando PHP, intente agregar el siguiente código al comienzo del archivo php:
Si está utilizando localhost, intente esto:
header("Access-Control-Allow-Origin: *");
Si está utilizando dominios externos como un servidor, intente esto:
header("Access-Control-Allow-Origin: http://www.webiste.com");
También te sugiero que uses esta extensión:
https://chrome.google.com/webstore/detail/cors-unblock/lfhmikememgdcahcdlaciloancbhjino?hl=en
Postman u otras herramientas similares le brindan entornos de desarrollo. De esta manera, puede ignorar y pasar la regla CORS mientras envía una solicitud y obtiene una respuesta cambiando la configuración de la herramienta. Pero si envía una solicitud a través del navegador (Chrome, Firefox, etc.), los navegadores siempre agregan algunos controles de verificación previa.
Por ejemplo, el navegador envía un mensaje de opciones para obtener la regla del lado del servidor antes de su solicitud http. Para que el navegador bloquee las solicitudes no válidas o incorrectas antes de procesar su solicitud http.
En su caso, el lado del servidor debe incluir la información de su dominio. No puede cambiar esta regla de comunicación desde el lado del cliente agregando solo declaraciones "Access-Control-Allow-Origin: *"
o "Access-Control-Allow-Origin: http://www.webiste.com"
.