1
我已經構建了一個使用CORS與API進行通信的Web應用程序。Android Chrome,CORS和Play!Framework失敗
該API接受所有來源和一些標題,並使用Play!Framework編寫。
上到應用的每個請求,我添加了這些頭:
override def doFilter(action: EssentialAction): EssentialAction = EssentialAction { request =>
action.apply(request).map(_.withHeaders(
"Access-Control-Allow-Origin" -> "*",
"Access-Control-Allow-Methods" -> "GET, POST, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers" -> "Origin, X-Requested-With, Content-Type, Accept, Host, Api-Token"
))
}
一切都在Firefox和Chrome在桌面(Windows和Linux下測試)的偉大工程,但(使用我的Android手機上失敗Chrome瀏覽器和本機瀏覽器)。
我啓用了通過USB進行的Chrome調試,我可以清楚地看到Chrome不會超出對服務器的OPTIONS請求。下面是提出的要求:
Request URL:http://127.0.0.1:9100/auth/login
Request Headersview source
Access-Control-Request-Headers:accept, origin, x-requested-with, content-type
Access-Control-Request-Method:POST
Origin:http://192.168.0.15:9000
Referer:http://192.168.0.15:9000/login
User-Agent:Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36
,並停止在這裏,沒有來自服務器的響應(但網絡標籤註明「待定」這個要求!)。
所以現在我不知道什麼是錯,我不知道該怎麼做。
你知道/對這個問題有一些想法嗎?
感謝您的幫助!
男人!我非常關注CORS技術和Internet Explorer的最新實現,我錯過了這個愚蠢的檢查!感謝那 ! :) –
@CyrilN。我們是爲此而來的;) –