XMLHttpRequest cannot load. No 'Access-Control-Allow-Origin' header is present.

chitti

Grünschnabel
Hallo leute,

auf einer seite wird mit einem button javascript funktion aufgerufen und dann soll es mit dieser javaScript Funktion auf die Servlet zugegriffen werden. beim Aufruf der JavaScript Funktion gibt es kein Problem. Ich habe da an paar Stellen alerts gemacht um zu testen wo er ankommt.
Das Problem ist dass beim Servlet Aufruf wird mir diese folgende Fehler ausgegeben:

XMLHttpRequest cannot load http://127.0.0.1:8080/CloudWebServiceClient/SetAttributeValueServlet?entity…20{F6394883-50F3-492D-81B4-4959CBD0823F}&attrName=Beschreibung&value=value. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

Ich kenne mich damit garnichts aus ich bitte um eure Hilfe. :(
Dankeschön im Vorraus

JavaScript:
Code:
//window.location.hostvar URL = "http://127.0.0.1:8080/CloudWebServiceClient/";
// var URL = "http://" + window.location.host + "/CloudWebServiceClient/";


function setAttributeValue(entity_id, attrName, value) {
                alert("Hallo I m here");        // um zu Testen ob die Funktion aufgerufen wird
                doRequestUsingGET();
                function createXMLHttpRequest()
                {
                 if(window.ActiveXObject)
                 {
                      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                 }
                 else if(window.XMLHttpRequest)
                 {
                      xmlHttp=new XMLHttpRequest();
                 }
                }
                
                function createQueryString()
                {
                 var queryString="entity_id=" + entity_id + "&attrName=Beschreibung" + "&value=value"; //Parameter übergabe
                 return queryString;
                 //alert(queryString);
                }
                
                function doRequestUsingGET()
                {
                
                 createXMLHttpRequest();  
                                 //Erzeuge eine HTTP Anfrage
                 var queryString = createQueryString();
                  alert(queryString);
                 var url = URL+"SetAttributeValueServlet?"+queryString;   //Servlet Aufruf
                 alert("Now I m here");
                 xmlHttp.onreadystatechange=handleStateChange;     
                 xmlHttp.open("GET",url,true);
                 xmlHttp.send(null);
                }
                
                function handleStateChange()
                {
                    alert(xmlHttp.status);
                 if(xmlHttp.readyState==4)
                 {
                  if(xmlHttp.status==200)
                  {
                      isSet = xmlHttp.responseText;
                    
                        }
                            
                        }
                        else{
                            alert(xmlHttp.status);
                            
                       
                  }
                 }
                }

Serlvet:
Code:
package servlet;


import java.io.IOException;
import java.io.PrintWriter;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import com.client.service.WebServiceProxy;
import com.client.service.WebServiceProxyProxy;


/**
 * Servlet implementation class newElementTypeServlet
 */
@WebServlet("/setAttributeValueServlet")


public class SetAttributeValueServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SetAttributeValueServlet() {
        
        super();
        // TODO Auto-generated constructor stub
    }
    
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setContentType("text/xml;charset=utf-8");  
        String entityID=request.getParameter("entity_id"); 
        String AttrName=request.getParameter("attrName"); 
        String Value=request.getParameter("value"); 
        System.out.println("Test: "+entityID+AttrName+Value);
        WebServiceProxy wsp = new WebServiceProxyProxy();
        boolean isSet = wsp.setAttributeValue(entityID, AttrName, Value);
        if(isSet)
        {
            PrintWriter pw = response.getWriter();
            pw.print(isSet);        
        }
        return;
    }


    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }


}
 
Hi
ich würde statt setHeader() lieber addHeader() verwenden und den String in "Access-Allow-Origin-Control" ändern :D.

Java:
 von
 response.setHeader("Access-Control-Allow-Origin", "*");

 zu
 response.addHeader("Access-Allow-Origin-Control", "*");
Lg hendl
 
Hey danke dir für die Antwort.

Ich probiere gleich mal aus... :)

edit:
leider Erfolglos....gibt den gleichen Fehler aus... :( ....
 

Neue Beiträge

Zurück