客户端向enter = False
while not enter:
user_choice = input('Enter d to guess the definition of a word or enter w to guess what word a definition describes: ')
if user_choice == 'd':
enter = True
show_flashcard()
elif user_choice == 'w':
enter = True
show_definition()
else:
print('You must either enter the letter "d" or "w" to continue.')
发出HTTP请求
该请求由nginx代理,并路由到处理该请求的Spring Boot应用程序:
GET https://sub.d0main.com/getWithCookie
“ / renderPage”端点生成一个HTML + JS页面,其中包含带有以下处理程序的提交按钮:
GetMapping("/getWithCookie")
fun getWithCookie(response: HttpServletResponse) {
val cookie = Cookie("longCookie", "42")
cookie.maxAge = 500
response.addCookie(cookie)
response.sendRedirect("https://d0main.com/renderPage")
}
浏览器呈现此页面,用户单击提交按钮。请注意,页面地址为var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://sub.d0main.com/postWithCookie', true);
xhr.setRequestHeader('Content-type', 'application/json');
xhr.withCredentials = true;
xhr.send(JSON.stringify({}));
,并且存在一个域为https://d0main.com/renderPage
的cookie。
该请求由nginx代理,并路由到应在其中处理的Spring Boot应用程序。
sub.d0main.com
映射看起来像
/postWithCookie
但是Spring Boot拒绝了状态码为400的请求,因为缺少必需的cookie参数。实际响应如下:
@PostMapping("/postWithCookie", consumes = [MediaType.APPLICATION_JSON_VALUE])
fun postWithCookie(
@CookieValue("longCookie") longCookie: Long) {
// ...
}
该如何解决?
答案 0 :(得分:0)
这里是开始使用Cookie和Spring Boot的好地方。