在我的JavaScript代码中,我检查AJAX请求的响应,如果它被设置为“401未经授权”,那么我就向用户呈现一个登录表单。当他填写完毕后,我将详细信息发布到j_security_check。
当网页服务器和REST服务器在不同的机器上运行时,这一切在本地主机上都可以正常工作,但浏览器由于跨源问题拒绝了AJAX请求。
我了解CORS,因此我向我的REST服务器添加了CORS过滤器,该过滤器为GUI服务器设置CORS标头。它的所有操作都很好,除了一个小但重要的细节:登录成功后,CORS过滤器不会对j_security_check响应进行处理。没有添加CORS标头,浏览器无法读取响应。
除了这个细节外,我的整个设置都完全按照我的意愿运行……但是我一夜都在解决这个问题,而我就是无法让它正常工作。
我知道尝试过滤j_security_check存在问题,但我不知道其他添加CORS标头的方法……所以我的问题是:
如何向j_security_check的响应添加CORS标头?
ContainerResponseFilter
时,我遇到了完全相同的问题。我能够在服务器端向任何响应添加所有所需的Access-Control-Allow-XXX
标头。但是对于j_security_check
请求的响应是一个例外。你找到解决方案了吗?先感谢你:). - StepUp