CORS:
Un problema muy común que la mayoría de los desarrolladores se enfrentan cuando llegan a un servicio rest de otro dominio y lo hacen I.

Me sale este error :

No ‘Access-Control-Allow-Origin’ encabezado presente en el recurso solicitado. Origen ‘http://localhost:8080‘ es, por tanto, no se permite el acceso.

A continuación es el fragmento de código jsp.

HTML:

<html>
<head>
<meta content="text/html; charset=utf-8">
<title>AJAX JSON SAMPLE</title>
<script type="application/javascript">	
function load() 
{ 
   var url = "https://samplewebapp1.herokuapp.com/rest/json/get";//use any url that have json data 
   var request; 
   if(window.XMLHttpRequest){   
    request=new XMLHttpRequest();//for Chrome, mozilla etc 
   }   
   else if(window.ActiveXObject){   
    request=new ActiveXObject("Microsoft.XMLHTTP");//for IE only 
   }   
   request.onreadystatechange  = function(){ 
      if (request.readyState == 4  ) 
      { 
        var jsonObj = JSON.parse(request.responseText);//JSON.parse() returns JSON object 
        document.getElementById("appName").innerHTML =  jsonObj.appName; 
        document.getElementById("language").innerHTML = jsonObj.language; 
      } 
   } 
   	request.open("GET", url, true); 
	request.send();  
} 
</script>
</head>
<body>
	appName:
	<span id="appName"></span>
	<br /> language:
	<span id="language"></span>
	<br />
	<button type="button" onclick="load()">Load Information</button>

</body>

</html>

A continuación es el resto de la implementación del servicio de ese servicio.

`package com.heroku.rest;
 import java.util.Date;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;

 import com.heroku.model.Heroku;

 @Path("/json")
 public class HerokuRestService {

 @GET
 @Path("/get")
 @Produces(MediaType.APPLICATION_JSON)
 public Heroku getTrackInJSON() {
         return new Heroku("My First Heroku", "Java", new Date().toString());
    }    }`

Lo que me estoy perdiendo.?

InformationsquelleAutor Sudarsan San | 2018-04-17

1 Comentario

  1. 1

    Usted está tratando de hacer un XmlHttpRequest a otro dominio. Usted puede simplemente utilizar CORS para decirle que su navegador lo permite. (Es completamente navegador específico, debido a algunas razones de seguridad).

    https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en-US usar esta extensión para permitir el acceso a ningún ‘access-control-allow-origin’ encabezado de la solicitud.

    O, usted puede configurar manualmente CORS así. Como se describe aquí https://www.html5rocks.com/en/tutorials/cors/

    • Eso es lo que no quiero hacer nada con el navegador. ¿Cómo será el otro extremo a los usuarios acerca de un tema. De todos modos voy a mirar en lo que html5rocks. Pero si hay algún método alternativo que se puede hacer en el código y no con el navegador, por favor hágamelo saber.
    • En ese caso, usted puede configurar manualmente CORS pero de nuevo me sugieren, más bien, hacer que su servicio de servir a los datos con independencia de que el cliente puede ser una aplicación o un explorador de nada, por lo que podría volver de respuesta con los encabezados que permiten el control de Acceso de origen. Algo como esto, la Respuesta.ok() .header(«Access-Control-Allow-Origin», «*») .header(«Access-Control-Allow-Métodos», «POST, GET, PUT, ACTUALIZACIÓN, OPCIONES») .header(«Access-Control-Allow-Headers», «Content-Type, Aceptar, X-Pidió-Con»).build();

Dejar respuesta

Please enter your comment!
Please enter your name here