Al usar la API, el parámetro solicitado al servidor no funciona correctamente. 'ocupación=01%02' funciona bien (cambie la URL directamente en el navegador de Internet), pero arroja un error cuando 'ocupación=01%2C02'(,) u 'ocupación=01&ocupación=02'.
Este error ocurre al solicitar al servidor con múltiples valores desde el checkbox.
¿Cuál es el problema? ¿Es un problema de codificación? Si me equivoco, ¿dónde me equivocaría?
Usé el cliente html5 y recibí 10 del servidor y los paginaba
en Java:
uri = new URIBuilder() .setScheme("http") .setHost("openapi.work.go.kr") .setPath("/opi/opi/opia/wantedApi.do") .setParameter("returnType", "xml") .setParameter("startPage", requestVo.getStartPage()) .setParameter("callTp", "L") .setParameter("region", "30200") .setParameter("occupation", requestVo.getOccupation()) .setParameter("keyword", requestVo.getKeyword()) .setParameter("authKey", requestVo.getKey()) .build();en jsp: la identificación de la casilla de verificación es ocupación_chbox y pongo el valor en
<input type="hidden" name="startPage" value="1">usando js
function jobsubmit(){ var form = document.getElementById("requestForm") var occ = checkOcc(); $("#occupation").val(occ); console.log($("#occupation").val()); form.submit(); } function checkOcc(){ var chk_arr = []; $("input[id='occupation_chbox']:checked").each(function(){ var chkBox = $(this).val(); chk_arr.push(chkBox); }) console.log(chk_arr); var occ=""; for(i = 0; i<chk_arr.length; i++){ occ += (i < chk_arr.length - 1) ? chk_arr[i] + "," : chk_arr[i] } console.log(occ); return occ; }Resolví este problema cambiando el delimitador de ',' a '|'.
occ += (i < chk_arr.length - 1) ? chk_arr[i] + "|" : chk_arr[i]