我正在尝试将电子邮件传递到路径变量,但它给了我一个错误: 这是功能:
@RequestMapping( value = "login/{email}", method = RequestMethod.OPTIONS )
public void Login( HttpServletResponse response, @PathVariable String email) {
sendOptions( response );
}
ERROR:
如何解决这个问题??
答案 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
中使用POSTmethod = 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。