为什么请求服务器参数"occupation=01%02"正常工作,但"occupation=01%2C02"或"occupation=01&occupation=02"出现错误?



使用API时,向服务器请求的参数无法正常工作。"占领=01%02"工作正常(直接在internet浏览器中更改url(,但当"占领=01%nC02"(,(或"占领=01&职业=02’。

向具有多个值的服务器请求时会发生此错误​​从复选框中选择。

问题出在哪里?这是编码问题吗?如果我错了,我会错在哪里?

我使用了html5客户端,从服务器接收10,并对其进行分页

在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();

在jsp中:checkbox id为occuation_chbox,我将该值放入

<input type="hidden" name="startPage" value="1">

使用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;
}

我通过将分隔符从","更改为"|"来解决这个问题。

occ += (i < chk_arr.length - 1) ? chk_arr[i] + "|" : chk_arr[i]

相关内容

  • 没有找到相关文章

最新更新