1.ajax報Uncaught TypeError:Illegal invocation
報錯資訊截圖如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPR10dFRlT6VERNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DMxETO0IDMwATNxgDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
導緻這個錯誤的原因有兩個:
1.請求類型有誤,比如post請求,但在背景設定的是get請求
2.參數有誤。 最大可能是參數不對應或者沒有傳參
經過排查,發現我的參數沒有擷取到值...希望以後不要踩這個坑...
2.關于ajax發送請求無法重定向
1.原因:ajax 是預設就是不支援重定向的,它是局部重新整理,不重新加載頁面。
2.解決辦法:我的解決辦法比較簡單,nodejs項目直接在前端重定向。但這樣暴露了邏輯跳轉,不好。但不知道怎麼解決,留給以後遇到怎麼解決再填坑吧。
$.ajax('login', data, function(data) {
if (data === 'success') {
window.location.href="跳轉路由" target="_blank" rel="external nofollow" ;
} else {
alert('賬号或密碼錯誤');
}
});
3.npm的坑,報錯資訊:checkPermissions Missing write access to ...
網上很多人說是沒有權限,但win7下應該沒有這個問題。
也有人說把 C:\Users\admin\AppData\Roaming\npm-cache和C:\Users\admin\AppData\Roaming\npm這兩個檔案夾删掉,可以試一試,我删了之後就沒報錯了。但注意:删掉C:\Users\admin\AppData\Roaming\npm這個檔案夾後,你全局安裝的東西都沒了,比如cnpm,vue等,要重新安裝。
這個坑是我用npm安裝mongodb安裝不上(npm i mongodb --save-dev),也是報這個錯誤(我已經全局安裝過mongodb,不知道是不是這個原因)。然後我一狠心就用了cnpm安裝mongodb,沒想到安裝上了!但别開心太早,一運作,給我報各種modules沒有安裝上...(不知道是不是cnpm安裝也有坑的問題)。然後我就想卸掉mongodb重新裝,但uninstall不好用,報錯。我...就把package-json檔案和node_modules檔案夾删了,然後把上面說的兩個檔案夾删掉,再用npm安裝就安裝好了。
個人猜測,可能是全局安裝和局部安裝沖突引起這個錯誤資訊吧,但小白...沒辦法驗證,留給以後填坑。
4.npm的--save和--save-dev
--save-dev
安裝的時候會在
package.json
檔案中的
devDependencies
屬性添加子產品,這個屬性就是開發時依賴的包
--save
安裝的時候會在
package.json
檔案中的
dependencies
屬性添加子產品,這個屬性就是釋出時依賴的包
舉個例子
如果你想把ES6編譯成ES5,就用到了babel,那麼 就是
devDependencies
,釋出的時候不需要再用babel了,因為打包後就是已經編譯出來的ES5代碼。
如果用了VUE,由于釋出之後還是依賴VUE,正式上線,投入使用的時候還是要用到VUE,是以是
dependencies
。