Rumah > Soal Jawab > teks badan
是这个样子的
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)
}
这是问什么啊?
伊谢尔伦2017-04-17 16:18:10
首先,同意楼上观点,我也认为是服务端报错了
从报错图片第一个错误来看是因为楼主发起的jsonp请求,但是返回时设置的响应头设置了'application/json',楼主可以去了解下jsonp原理,试着在get里面调用res.setHeaders(貌似是这个api记不太清了,总之就是设置响应的header头),把响应数据的mine类型改成'application/javascript'试试
其次 Uncaught (in promise) 错误是指调用promise时报错,是由于第一条错误引发的后续错误,但是客户端没有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)
})