我在我的Grails 3.2.2應用程序中進行了集成測試,該應用程序應檢查CORS支持是否可用。當我啓動應用程序並使用類似Paw或Postman的請求時,我在CorsFilter中設置的斷點顯示我的頭文件設置正確。但是,當我這樣做,從一個集成測試使用RestBuilder用下面的代碼相同的請求:在REST服務集成測試中頭部消失
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來捕獲您發送/接收的流量,至少找出哪一方負責。 –