-1
debug.html클라이언트 측 자바 스크립트에서 서버 측 함수를 실행하는 방법은 무엇입니까?
<head>
<script src="debugBoot.js"></script>
</head>
<body onload="init()">
<button onclick="alert(dss.getParameters())">Get Params</button>
</body>
debugBoot.js
var dss = {};
var INVALID_PARAM = -1;
function init() {
dss.getParameters = function(){
var rest=new XMLHttpRequest();
rest.open("GET", "http://localhost:8080/MW-war/rest/mw/enumerateParams", false);
var data=rest.responseText;
var jsonResponse = JSON.parse(data); //line 11
console.log(jsonResponse["Data"]);
rest.send(jsonResponse);
return JSON.parse(data);
};
}
MWRest (인터페이스)
@GET
@Path("/enumerateParams")
@Produces(MediaType.APPLICATION_JSON)
public String[][] enumerateParams();
myJavaClass
@Override
public String[][] enumerateParams() {
// TODO Auto-generated method stub
return new String[][] { { "" + PATIENT_ID, "PATIENT_ID" }, { "" + AGE, "AGE" },
{ "" + BLOOD_PRESSURE, "BLOOD_PRESSURE" }, { "" + GENDER, "GENDER" },
{ "" + SMOKING_HABITS, "SMOKING_HABITS" }, { "" + DIET_FRUITS_VEGGIES, "DIET_FRUITS_VEGGIES" },
{ "" + CHOLESTEROL, "CHOLESTEROL" }, { "" + ALCOHOL, "ALCOHOL" }, { "" + ACTIVITY, "ACTIVITY" },
{ "" + QUIT_SMOKING, "QUIT_SMOKING" }, { "" + DIET_CEREAL_FIBRE, "DIET_CEREAL_FIBRE" } };
}
debugBoot.js에서 할 일이 필요합니다. 버튼 (디버그 모드에서 chrom f12)을 누르면 debugBoot.js로 건너 뛰고 f10이있는 행을 통과합니다. 라인
var data=rest.responseText;
데이터가 비어 있습니다 ... 내가 선
var jsonResponse = JSON.parse(data);
에 갈 때 오류가 :
VM5402:1 Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Object.dss.getParameters (debugBoot.js:11)
at HTMLButtonElement.onclick (debug.html?scriptId=2:18)
를 나는이 링크를 이동하면 :
http://localhost:8080/MW-war/rest/mw/enumerateParams
내가 출력으로이 얻을 : 23,516,
내가 말을 잊었 내가 많이 봤, 일부 그렇게 유사하지 질문을 발견
[["0","PATIENT_ID"],["1","AGE"],["2","BLOOD_PRESSURE"],["3","GENDER"],["4","SMOKING_HABITS"],["5","DIET_FRUITS_VEGGIES"],["6","CHOLESTEROL"],["7","ALCOHOL"],["8","ACTIVITY"],["9","QUIT_SMOKING"],["10","DIET_CEREAL_FIBRE"]]
,하지만 내 문제와 너무 비슷한 것 ... 어떤 제안? 이 작품
실제로 요청을 보내지 않았습니까? 또한 응답은 즉시가 아닌 비동기식입니다. 예제 – UnholySheep
에 대해서는 [MDN] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)을 참조하십시오. 요청을 보내지 만 응답을 읽으려는 * 후에 * . – UnholySheep
어떻게 요청을 보내지 않습니까? rest.open()와 그것의 세 번째 param은 비동기를 synchronus로 설정해야합니다. – newb