与人讨论时遇到一个问题,就是:
浏览器中后台发起的一个异步ajax请求,服务器做响应时,附带了cookie信息,那么后续对同域名下其他页面请求时,该cookie是否有效,会一并随请求提交到web服务器呢?
自己是对web相关的标准不熟,只知道在普通前台请求时这种cookie会有效,对ajax请求的情况就暂时不确定。但想知道该问题的答案究竟是什么,去翻阅相关的标准是远水救近火。本着It's easier to check than to guess的原则,决定先写段程序来验证这个问题。相关代码如下
发起ajax请求的html页面test.html的代码为
$.get('/api/async', function(result){
window.location.href=result.url;
}, 'json')
后台'/api/async'和'/api/index'服务程序的代码为
import web
import json
class async:
def GET(self):
web.setcookie('web', 'python')
return '{"url": "/api/index"}'
class index:
def GET(self):
cookies = web.cookies()
return json.dumps(cookies)
routes = (
'/api/asy