例如,
我转到网页(网页W),现在我是客户。
服务器A是与网页关联的服务器,我编码并控制(以Java编码)
服务器B是一个完全不同的域上的服务器,我无法控制它。它正在运行自己的网页。
客户端向服务器A发送Javascript AJAX请求,服务器A以OK响应。代码继续,然后代码将页面重定向到服务器B的网页。现在当前页面是服务器B的网页。
在服务器B的网页上需要完成任何操作后,服务器B使用HTTP回叫服务器A.
现在,服务器A收到了请求,控制器需要将客户端重定向回网页W.但是,HTTP请求来自服务器B,而不是客户端。我不能告诉请求重定向到网页W,因为请求不是来自客户端。
HTTP请求来自服务器B,服务器A捕获它,但是服务器A如何知道原始客户端(我)重定向到网页W?
在更模糊的术语中,我的服务器是否有办法在重定向到另一个域后找到原始客户端会话?
答案 0 :(得分:0)
一个真实的用例可能在这里证明是有用的,但是我理解你的问题
客户端(浏览器)从您的服务器加载网页。 然后客户端通过ajax向您的服务器发出另一个请求。
在某些时候,您描述了重定向到服务器B.目前还不清楚这是通过ajax响应中的位置标头完成的,还是在收到ajax响应后,在客户端上使用javascript然后将页面重定向到服务器B
我将假设它是客户端javascript beings你说服务器A用OK响应ajax请求(暗示200,而不是302或301)
因此,如果客户端现在正在查看服务器B,而服务器B(不是客户端)向服务器A发出请求,则它是一个全新的会话,您只知道发送给您的是什么。但是,无论来自哪里,您都应该回复相同的请求。
例如,假设您有一个端点/ foo ..如果来自客户端或来自服务器B,对/ foo的回复将是相同的......您无法从服务器A控制客户端。