node.js - 問個問題 Uncaught (in promise)
問題描述
是這個樣子的vue+vue-resource+express組合然后在下面這里遇到問題了
client
this.$http.jsonp(’http://localhost:3300/register’, { params: { name: this.name, password: this.password, repassword: this.repassword } }, {}) .then(function (response) { console.log(response.data.state) })
server
app.get(’/register’, function (req, res) { userTools.create(user).then(function(result){res.jsonp(result) }).catch(function(err){res.jsonp(data) }) })
這樣就會出錯
如果server改為下面這樣就不出包錯了
app.get(’/register’, function (req, res) { res.jsonp(data) }
這是問什么啊?
問題解答
回答1:首先,同意樓上觀點,我也認(rèn)為是服務(wù)端報錯了
從報錯圖片第一個錯誤來看是因為樓主發(fā)起的jsonp請求,但是返回時設(shè)置的響應(yīng)頭設(shè)置了’application/json’,樓主可以去了解下jsonp原理,試著在get里面調(diào)用res.setHeaders(貌似是這個api記不太清了,總之就是設(shè)置響應(yīng)的header頭),把響應(yīng)數(shù)據(jù)的mine類型改成’application/javascript’試試
其次 Uncaught (in promise) 錯誤是指調(diào)用promise時報錯,是由于第一條錯誤引發(fā)的后續(xù)錯誤,但是客戶端沒有catch住,樓主可以這么寫
this.$http.jsonp(’http://localhost:3300/register’, { params: { name: this.name, password: this.password, repassword: this.repassword } }, {}) .then(function (response) { console.log(response.data.state) }).catch(e => { // 打印一下錯誤 console.log(e) })回答2:
應(yīng)該是sever代碼有問題吧,看下server那塊是不是有報錯
相關(guān)文章:
1. python小白 關(guān)于類里面的方法獲取變量失敗的問題2. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙3. linux運維 - python遠(yuǎn)程控制windows如何實現(xiàn)4. Python2中code.co_kwonlyargcount的等效寫法5. javascript - 如何用最快的速度C#或Python開發(fā)一個桌面應(yīng)用程序來訪問我的網(wǎng)站?6. django - Python error: [Errno 99] Cannot assign requested address7. mysql數(shù)據(jù)庫做關(guān)聯(lián)一般用id還是用戶名8. [python2]local variable referenced before assignment問題9. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?10. python小白,關(guān)于函數(shù)問題
