如何解决我试图获取用户的IP地址并将其存储在vuex中,然后我将在对产品详细信息的每个请求中将其发送给支持的
创建状态以存储ipaddress auth.js
const state = {ipAddress: ''}
const getters = {ipAddress: (state) => {
return state.ipAddress
}
}
const actions = {
async getIpAddress ({commit}) {
const { data: { ip } } = await axios.get("https://www.cloudflare.com/cdn-cgi/trace",{responseType: "text",transformResponse: data =>
Object.fromEntries(data.trim().split("\n").map(line => line.split("=")))
});
commit('setIp',ip)},}
这是ip
地址
const mutations = {
setIp(state,payload) {
state.ipAddress = payload
},}
App.vue 调用功能...
<script>
import { mapActions,mapState,mapGetters } from "vuex";
Vue.mixin(windowMixin)
export default {
name: "App",methods: {
...mapActions('auth',['getIpAddress']),},mounted() {
this.getIpAddress();
},};
</script>
product.service.js 将ip作为参数发送
import ApiService from "../api.service";
const ProductService = {
async productDetails(productID,ipAddress){
const requestData = {
method: 'get',url: `/api/products/v1/product/detail/?itemId=${productID}`,params: {
detailToken: localStorage.getItem('detailData') && localStorage.getItem('detailData'),ip: ipAddress
}
}
在这里,我将此ipAddress
添加到了另一个组件的productDetails
中,
但我想直接将其导入product.service.js
中,请帮助我!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。