<script src="https://alex2844.github.io/js-global-fetch/dist/polyfill.js"></script>
const { fetch } = require('js-global-fetch');
fetch('https://httpbin.org/get', {
headers: {
'Cors-Cache': 60*60*24*1000,
'Cors-Referer': 'https://alex2844.github.io/js-global-fetch/',
'Cors-User-Agent': 'globalFetch'
}
})
.then(res => res.json())
.then(body => console.log(body));
const
Fastify = require('fastify'),
{ CorsProxy } = require('js-global-fetch');
(Fastify()
.register(CorsProxy, { prefix: '/proxy' }) // http://localhost:3000/proxy/
.get('/', async (req, rep) => 'Index page') // http://localhost:3000/
.listen(3000, () => console.log('Server start'))
);
<iframe src="https://httpbin.org/get" frameborder="0" allowfullscreen="true" width="500" height="300" loading="lazy"></iframe>
<script>
$('iframe').addEventListener('load', event => {
// console.log(event.target.contentWindow.document.body.innerHTML); // Blocked a frame with origin "http://localhost:8080" from accessing a cross-origin frame.
new Promise(res => {
let onmessage = e_ => {
if (e_.data.corsProxy && (event.timeStamp == e_.data.timeStamp)) {
window.removeEventListener('message', onmessage, false);
return res(e_.data._corsProxy_);
}
}
event.target.contentWindow.postMessage({
corsProxy: {
eval: (() => document.body.innerHTML).toString()
},
timeStamp: event.timeStamp
}, '*');
window.addEventListener('message', onmessage, false);
}).then(html => {
console.log(JSON.parse(html.replace(/^(.*?)>/, '').replace(/<(.*?)$/, '')));
});
}, { once: true });
</script>