node.js - 問個(gè)問題 Uncaught (in promise)
問題描述
是這個(gè)樣子的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) }) })
這樣就會出錯(cuò)
如果server改為下面這樣就不出包錯(cuò)了
app.get(’/register’, function (req, res) { res.jsonp(data) }
這是問什么啊?
問題解答
回答1:首先,同意樓上觀點(diǎn),我也認(rèn)為是服務(wù)端報(bào)錯(cuò)了
從報(bào)錯(cuò)圖片第一個(gè)錯(cuò)誤來看是因?yàn)闃侵靼l(fā)起的jsonp請求,但是返回時(shí)設(shè)置的響應(yīng)頭設(shè)置了’application/json’,樓主可以去了解下jsonp原理,試著在get里面調(diào)用res.setHeaders(貌似是這個(gè)api記不太清了,總之就是設(shè)置響應(yīng)的header頭),把響應(yīng)數(shù)據(jù)的mine類型改成’application/javascript’試試
其次 Uncaught (in promise) 錯(cuò)誤是指調(diào)用promise時(shí)報(bào)錯(cuò),是由于第一條錯(cuò)誤引發(fā)的后續(xù)錯(cuò)誤,但是客戶端沒有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 => { // 打印一下錯(cuò)誤 console.log(e) })回答2:
應(yīng)該是sever代碼有問題吧,看下server那塊是不是有報(bào)錯(cuò)
相關(guān)文章:
1. angular.js - angular內(nèi)容過長展開收起效果2. 關(guān)于nginx location配置的問題,root到底是什么3. 關(guān)于docker下的nginx壓力測試4. angular.js - angularjs的自定義過濾器如何給文字加顏色?5. docker鏡像push報(bào)錯(cuò)6. python - flask表單 如何把提交多行數(shù)據(jù)在服務(wù)端讀取出來?7. python 怎樣用pickle保存類的實(shí)例?8. 并發(fā)模型 - python將進(jìn)程池放在裝飾器里為什么不生效也沒報(bào)錯(cuò)9. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?10. 大家好,請問在python腳本中怎么用virtualenv激活指定的環(huán)境?
