12/03/2025

This commit is contained in:
lwcrosier 2025-12-03 21:25:58 -05:00
parent 3993d8cce5
commit a1afcacfe5
10 changed files with 143 additions and 8 deletions

26
Notes Normal file
View File

@ -0,0 +1,26 @@
Setting up a CORS proxy in a Vue.js application is typically done during development to bypass Cross-Origin Resource Sharing (CORS) restrictions. This is achieved using the devServer.proxy option in your vue.config.js file.
Steps to set up a CORS proxy in Vue.js:
Create vue.config.js: If you don't already have one, create a vue.config.js file in the root of your Vue project (at the same level as package.json).
Configure the proxy: Add the devServer.proxy configuration within module.exports in vue.config.js.
JavaScript
// vue.config.js
module.exports = {
devServer: {
proxy: {
// Proxy all requests starting with '/api' to your backend server
'^/api': {
target: 'http://localhost:3000', // Replace with your backend server URL
changeOrigin: true, // Needed for virtual hosted sites
// pathRewrite: { '^/api': '' } // Optional: Remove '/api' prefix from the request path sent to the backend
},
// You can add more proxy rules for different paths if needed
// '^/another-path': {
// target: 'http://another-backend.com',
// changeOrigin: true,
// },
},
// For simpler cases where you want to proxy all unknown requests to a single backend
// proxy: 'http://localhost:4000',
},
};

12
caddy-admin.json Normal file
View File

@ -0,0 +1,12 @@
{
"admin": {
"listen": "localhost:2019",
"enforce_origin": true,
"origins": [
"*",
"http://localhost:2019",
"http://localhost:5173",
"http://*:*"
]
}
}

12
caddy-admin.sh Normal file
View File

@ -0,0 +1,12 @@
{
admin: 2019 {
enforce_origin: "false"
}
}
Can run the following command to turn it off:
curl -X PATCH http://localhost:2019/config/admin/enforce_origin -H "Content-Type: application/json" -d 'false'

View File

@ -1,5 +1,17 @@
<template>
<div class="gradient-background">
<RouterView />
</div>
</template>
<style scoped>
.gradient-background {
background-image: linear-gradient(to right, #ff7e5f, #feb47b);
/* You can adjust direction and colors as needed */
min-height: 100vh; /* Example: to fill the viewport height */
display: flex;
color: white;
}
</style>
<script></script>

0
src/getConfig.js Normal file
View File

View File

@ -11,4 +11,8 @@ const app = createApp(App)
app.use(createPinia())
app.use(router)
app.config.errorHandler = (err) => {
console.log(err);
}
app.mount('#app')

View File

@ -9,11 +9,13 @@ const router = createRouter({
name: 'home',
component: HomeView,
},
/*
{
path: '/config',
name: 'Config',
component: () => import('../views/ConfigView.vue')
}
*/
],
})

View File

@ -1,5 +0,0 @@
<template>
<div class="container">
<button class="btn btn-primary">Get Config</button>
</div>
</template>

View File

@ -1,5 +1,72 @@
<template>
<div></div>
<div class="container">
<button class="btn btn-primary" @click="fetchData">Get Config</button>
<br/>
<p> {{ myData }}</p>
</div>
</template>
<script setup></script>
<script>
export default {
data() {
return {
myData: null,
isLoading: false,
error: null
};
},
methods: {
async fetchData() {
this.isLoading = true;
this.error = null;
let fetch_data = null;
fetch('http://localhost:2019/config/', {
mode: 'cors',
method: 'GET'
})
//.then(response => console.log(response))
.then(response => response.json())
//then(responseJson => fetch_data = responseJson)
//.then(data => console.log(data))
.then(data => {
fetch_data = data;
this.myData = data;
})
.catch(error => {
console.error('Error:', error);
this.error = error;
}
);
// Wait for the above fetch request to complete.
// Keep waiting until fetch completes or there is an error
/*
var isCompleted = false;
do {
await new Promise(r => setTimeout(r, 2000));
if (fetch_data !== null || this.error !== null) {
isCompleted = true;
}
} while (isCompleted === false);
*/
//const response = fetch('http://localhost:2019/config/');
//if (!response.ok){
// throw new Error (`Http error! status: ${response.status}`);
//}
//const config = (await response).json();
//console.log('fetched caddy config!');
}
}
}
</script>

View File

@ -0,0 +1,5 @@
<template>
<div></div>
</template>
<script></script>