出於某種原因,我得到我的Angularjs應用以下錯誤:在主線程同步的XMLHttpRequest被廢棄的錯誤
在主線程同步的XMLHttpRequest是因爲其所帶來的影響最終用戶的體驗棄用。
由於我沒有得到線索是什麼導致它,我不知道什麼代碼分享? 當我導航到一個狀態(UI路由器)但沒有與此狀態相關的控制器時,會出現此問題。
以前有人看過這個嗎?
出於某種原因,我得到我的Angularjs應用以下錯誤:在主線程同步的XMLHttpRequest被廢棄的錯誤
在主線程同步的XMLHttpRequest是因爲其所帶來的影響最終用戶的體驗棄用。
由於我沒有得到線索是什麼導致它,我不知道什麼代碼分享? 當我導航到一個狀態(UI路由器)但沒有與此狀態相關的控制器時,會出現此問題。
以前有人看過這個嗎?
這是由於嘗試從瀏覽器進行同步AJAX調用所致。作爲參數傳遞給任何jQuery的Ajax調用的
async: false
:
如果Ajax調用通過jQuery做,那麼它使用時引起的。
xmlhttp.open(...)
設置爲false
:
如果它與本地XMLHttpRequest
做,那麼當第三個參數它引起的。
所以,問題的根源是從您的網頁Javascript調用ajax調用。您將不得不檢查所有發生Ajax調用的地方,並找到一個設置錯誤參數的地方,修復參數並(可能)重做響應處理以使用異步響應。
下面的是關於單向一些文章,同步Ajax調用在角製成,因此它可能給你一個想法要尋找什麼:
How to $http Synchronous call with AngularJS
How to create synchronous using $http in angular.js
由於角只是默認情況下是異步的,它看起來像你必須走出自己的方式來創建自己的服務。爲此,您將使用原生XMLHttpRequest
對象,因此您可能只需編寫XMLHttpRequest
的代碼並查看引用的位置,然後在該附近找到.open()
調用。
我在生產服務器有相同的Synchronous XMLHttpRequest on the main thread is deprecated
,同時對我的當地環境沒有這樣的錯誤。
在此我的情況是因情況不匹配模板名稱VS爵士請求:
mytemplate.tmpl.html
myTemplate.tmpl.html
什麼困惑的問題是,指令/模板(由於OSX case-insensitivity)工作的罰款在Mac上 - 但是,當推到了一個Linux case-sensitive AWS親失敗管理服務器。
將模板文件名更改爲小寫修復了問題。
正如上面的評論之一所述,AJAX錯誤是誤導性的,因爲它暗示着調用本身有問題,而不僅僅是文件「缺失」。
你有一個同步AJAX請求的地方? – tymeJV
如果它不是很多的代碼 - 共享它的全部;-) 如果您使用SCM(例如git)共享所有已更改的代碼 –
我認爲問題在於您正在使用同步XMLHttpRequest並且主線程上的同步XMLHttpRequest已被棄用,因爲它對最終用戶的體驗有不利影響。 – Jan