如何使用spring在pathVariable中传递电子邮件

时间:2017-04-21 11:20:37

标签: java spring spring-boot spring-security

我正在尝试将电子邮件传递到路径变量,但它给了我一个错误: 这是功能:

@RequestMapping( value = "login/{email}", method = RequestMethod.OPTIONS )
public void Login( HttpServletResponse response, @PathVariable String email) {
    sendOptions( response );
}

ERROR:

  

http://localhost:8080/demo/login/std@gmail.com 406(不可接受)

如何解决这个问题??

5 个答案:

答案 0 :(得分:1)

@是URL的保留字符,不应在URL中使用。您需要对您的网址进行编码。

答案 1 :(得分:0)

尝试将以下代码放在web.xml中并检查其是否有效

<init-param> <param-name>dispatchOptionsRequest</param-name> <param-value>true</param-value> </init-param>

答案 2 :(得分:0)

如果使用ajax发送数据,请使用:

headers: { 
Accept : "application/json"}

。在@RequestMapping

中使用POST
method = RequestMethod.POST,
        produces = "application/json; charset=utf-8"

答案 3 :(得分:0)

试试这个,

@RequestMapping( value = "login/{email:.+}", method = RequestMethod.OPTIONS )
public void Login( HttpServletResponse response, @PathVariable(name="email") String email) {

编码也是另一种方式。

答案 4 :(得分:0)

正如Jaydeep Rajput所说,你应该对URL进行编码,你可以像这样编码电子邮件:

std@gmail.com = std%40gmail.com

您可以找到here ASCII编码参考来转义任何字符。

此外,您可以使用JavaScript Scape Function