我的科爾多瓦應用程序使用backbone.js與我的服務器進行通信。由於該應用程序顯然不與我的API在同一個域中運行,因此每個非平凡的ajax請求都會在OPTIONS預發送時發送。我明白爲什麼這樣做。但是,我完全控制着我自己的服務器!我確切知道,支持哪些http方法和頭文件。所以,是不是OPTIONS請求浪費時間?我該如何禁用它?如何防止Backbone.js發送OPTIONS請求?
0
A
回答
2
你說你知道它爲什麼會提出請求,但爲那些沒有MDN describes the conditions that you'll get a preflighted request的人提供了一些上下文。
不,您不能禁用它。
作爲客戶端代碼的作者,你知道你想要做什麼請求。
作爲服務器端代碼的作者,您知道您希望接受哪些請求。作爲編寫用戶瀏覽器的公司,谷歌(或Mozilla,Opera等)不知道你是這兩個網站的作者,而且你信任你自己的公司。他們不知道請求網站A要求瀏覽器對網站B進行無害化處理。
在CORS之前,作者只需擔心可能由鏈接和表單啓動的針對CSRF攻擊的防禦。
然後來XHR和突然的JavaScript上http://evil.example.com
可以觸發DELETE
請求http://victim.example.com
完全啓用withCredentials
。如果服務器處理它,對瀏覽器做出響應,然後瀏覽器告訴JS引擎沒有訪問控制標頭,那將是非常糟糕的。內容將被刪除。
因此,您需要預檢才能獲得權限。
所以這不是浪費時間。你不能禁用它。您只需經過許可即可回覆。
相關問題
- 1. 防止Cookies發送AJAX請求
- 2. 防止不變POST請求發送
- 3. 如何防止ASP.NET應用程序中的OPTIONS請求?
- 4. 在OPTIONS請求中未發送Cookie Cookies
- 5. AngularJS發送OPTIONS請求而不是POST
- 6. Backbone.js&Flask RESTful API(僅限OPTIONS請求)
- 7. 如何防止PHP發送的HTTP請求中的403錯誤?
- 8. AngularJS:如何防止請求
- 9. 如何防止ajax請求?
- 10. Backbone.js model.save()發送多個PUT請求
- 11. Backbone.js model.destroy()不發送DELETE請求
- 12. Backbone.js只發送一次GET請求?
- 13. 當jQuery.ajax發送GET時發送OPTIONS請求跨域的Ext.Ajax.request GET
- 14. WebRequestHandler停止發送請求
- 15. JMeter停止發送請求
- 16. 如何防止Node.js發送成功標題到ajax發佈請求
- 17. 如何防止任何人發送請求到我的網絡服務
- 18. 如何防止SuperAgent AJAX調用OPTIONS?
- 19. 防止jQuery post請求觸發多次
- 20. 防止webbrowser發送請求到css文件
- 21. 防止Volley同時發送同一請求
- 22. Facebook發送請求不發送請求
- 23. 如何發送curl請求
- 24. 如何發送POST請求?
- 25. 如何發送ajax請求
- 26. AngularJS如何發送請求?
- 27. 如何發送SAML請求?
- 28. 如何防止API請求源欺騙?
- 29. 如何防止請求重複?
- 30. 如何防止跨域的Ajax請求?