2016-09-15 3 views
0

PC1에서 실행되는 클라이언트 프로젝트 (JSP 페이지가있는 동적 웹 프로젝트)와 서버 프로젝트 (HTTP 메서드가있는 Java 클래스가있는 동적 웹 프로젝트)가 PC2에서 실행됩니다.localhost 대신 IP 주소로 웹 응용 프로그램을 호스팅하는 방법

PC1에있는 클라이언트 프로젝트를 호출하여 서버의 GET 또는 DELETE 메서드를 호출 할 수 있기를 원합니다.

나는 클라이언트 프로젝트에서 PC2의 IP 주소을 사용해야한다는 것을 알고 있으며, 나는 또한 시도했다. 그러나 제대로 작동하지는 않는다.

클라이언트 프로젝트 (client.jsp)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>GET user</title> 
<script> 
function loadResponse() 
{ 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() 
    { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
     { 
      document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
     } 
    }; 
    xmlhttp.open('DELETE','http://PC2_IP_ADDRESS:8080/ServerProject/app/user/service/deleteUser',true); 
    //I've written actual PC2 IP address instead of PC2_IP_ADDRESS in my code 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<div id="myDiv">The response text would come here</div> 
<button type ="button" onclick="loadResponse()">submit</button> 
</body> 
</html> 

서버 프로젝트 (UserServices.java)

package com.service.user; 
import javax.ws.rs.*; 

@Path("/user/service") 
public class UserServices { 

    @GET 
    @Path("/getUser") 
    public void getUser() 
    { 
     System.out.println("Inside GET user method"); 
    } 

    @Path("/deleteUser") 
    @DELETE 
    public void deleteUser() 
    { 
     System.out.println("Inside DELETE user method"); 
    } 
} 

:

내가 먼저 아래의 코드를 모두 연결하자 내가 client.jsp을 실행하면 콘솔 (PC2)에서 일부 활동을 볼 수 있지만 그저 내가 잘못 뭐하는 거지

내부 사용자 방법

삭제 인쇄하지 않는 이유는 무엇입니까?

콘솔 활동은 당신 때문에 cross-site scripting라는 보안 문제의 더 많은 구성없이 사이트 A에서 사이트 B로 Ajax 호출을 할 수 없습니다

Sep 15, 2016 4:53:04 PM com.sun.jersey.api.core.PackagesResourceConfig init 
INFO: Scanning for root resource and provider classes in the packages: 
    com.service.user 
Sep 15, 2016 4:53:05 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses 
INFO: Root resource classes found: 
    class com.service.user.UserServices 
Sep 15, 2016 4:53:05 PM com.sun.jersey.api.core.ScanningResourceConfig init 
INFO: No provider classes found. 
Sep 15, 2016 4:53:05 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate 
INFO: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM' 
Sep 15, 2016 4:53:05 PM com.sun.jersey.spi.inject.Errors processErrorMessages 
WARNING: The following warnings have been detected with resource and/or provider classes: 
WARNING: A HTTP GET method, public void com.service.user.UserServices.getUser(), MUST return a non-void type. 
+0

두 PC의 동일한 네트워크에 있어야합니다. 당신이 말하는 IP를 어떻게 얻었습니까? –

+0

말하기 ** 콘솔 (PC2)에서 일부 활동을 볼 수 있습니다 ** 충분하지 않습니다. 네가 본 정확한 활동은 무엇인가? JSP 또는 REST 측에서 오류가 발생 했습니까? –

+0

PC1의 탐색기에서 http : // PC2_IP_ADDRESS : 8080/ServerProject/app/user/service/getUser에 액세스하려고 시도 했습니까? –

답변

0

아래에 첨부되어 있습니다. 기본적으로 브라우저는 기본적으로 허용하지 않습니다. 여기에 Stackoverflow 구제에 대한 how to fix it

+0

크로스 사이트 스크립팅에 대한 간단한 설명이 아니라이를 수정하는 방법에 대해 설명합니다. – DD25

+0

기존 SE 기사의 마지막 링크를 업데이트했습니다. –

관련 문제