【发布时间】:2017-03-29 09:46:49
【问题描述】:
我在我的 Grails 3.2.2 应用程序中有一个集成测试,应该检查 CORS 支持是否正常运行。当我启动应用程序并使用 Paw 或 Postman 之类的东西来执行请求时,我在 CorsFilter 中设置的断点表明我的标头设置正确。但是,当我使用 RestBuilder 使用以下代码从集成测试中执行相同的请求时:
void "Test request http OPTIONS"() {
given: "JSON content request"
when: "OPTIONS are requested"
def rest = new RestBuilder()
def optionsUrl = url(path)
def resp = rest.options(optionsUrl) {
header 'Origin', 'http://localhost:4200'
header 'Access-Control-Request-Method', 'GET'
}
then: "they are returned"
resp.status == HttpStatus.SC_OK
!resp.json
}
CorsFilter 中的断点显示两个头都是空的:
奇怪的是,当我在 RestTemplate 中放置断点时,就在请求执行之前,标头就在那里:
我不明白这些标题是如何消失的。有什么想法吗?
【问题讨论】:
-
值得使用代理(如 Fiddler)或 Wireshark 来捕获您发送/接收的流量,至少找出应归咎于哪一方。
标签: spring rest grails testing