javascript无法使用ajax参数发送'+'字符

Din*_*nka 0 javascript java parameters ajax jquery

我需要将带有ajax参数的'+'字符传递给我的控制器.

带参数的Ajax Call包含'+'字符.

var subsNumbers = '+94'
var url = 'getList?subsNums='+subsNumbers;

$.ajax({
        url:url,
        type:'POST',
        dataType:'json',
        success:function (saveResponse) {
....
}
});
Run Code Online (Sandbox Code Playgroud)

在我的控制器(Spring控制器类)中,

String deviceNumbers = request.getParameter("subsNums");
logger.debug("deviceNumbers-->{}", deviceNumbers);
Run Code Online (Sandbox Code Playgroud)

'+'字符已替换为空格.实际结果是

deviceNumbers--> 94 
Run Code Online (Sandbox Code Playgroud)

预计是

deviceNumbers-->+94 
Run Code Online (Sandbox Code Playgroud)

Mus*_*usa 6

您的网址未正确编码,请使用 encodeURIComponent

var url = 'getList?subsNums='+encodeURIComponent(subsNumbers);
Run Code Online (Sandbox Code Playgroud)

  • 解释原因:URL中的+字符按照惯例替代非法空格字符,因此如果您的URL包含+符号,接收方必须将它们解释为"这些实际上是空格". (2认同)