new FormData 只适用于web端,uniapp 小程序不适用,这里当时也卡了一下,随便用个js文件发现其实FormData也使用不了,所以如果要配置formData 的格式 无法使用FormData,会报 FormData is not defined.
解决
1.安装fly:
npm install flyio
2.使用renderjs
3.Content-Type: ‘application/x-www-form-urlencoded’
最终代码:
<view class="nav_title" @click="custom.taskSycn">test</view>
// 注意renderjs方法的调用custom.taskSycn() 不能加(),在H5能正常解析,但是在APP端无法正常解析
<script module="custom" lang="renderjs"> // 定义renderjs 即视图层,这里面的语法及生命周期都和vue语法保持一致
import axios from 'axios'
export default {
data() {
return {}
},
methods: {
handleClick() {
console.log('9999');
},
taskSycn() {
console.log('taskSycn++++');
let Authorization = `9j8yMV b964c9635dcf5e0f9c50a6073bdb69d7`
let data = {
userId: "a85e5678-419d-4e8f-8da0-c961b4186333",
package: "io.changchun.app",
taskId: 1,
taskName: "test21"
// "injectObject":'{"url":"/pages/myMission/myMission"}'
};
axios
.post("http://116.141.0.158:8083/mobile-portal/task/sync.vm", {
...data
}, {
headers: {
Authorization,
"Content-type": "multipart/form-data"
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}
}
</script>
<script> // 就是我们正常的uniapp js代码 即service层
export default {
data() {
return {}
},
}
</script>