跨域的简单实现
利用flask启动后端服务器,前端是使用原生的js实现的。
只需要在后端响应头中增加 Access-Control-Allow-Origin 参数,如果想让所有的域都可以访问,那值设为 “*”就行。
后端代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!', 200, [
("Access-Control-Allow-Origin", "*")
]
if __name__ == '__main__':
app.run()
前端代码:
`
<title>Ajax starting point</title>
<style>
html,
pre {
font-family: sans-serif;
}
body {
width: 500px;
margin: 0 auto;
background-color: #ccc;
}
pre {
line-height: 1.5;
letter-spacing: 0.05rem;
padding: 1rem;
background-color: white;
}
label {
width: 200px;
margin-right: 33px;
}
select {
width: 350px;
padding: 5px;
}
</style>
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script>
<![endif]-->
Ajax starting point
<form>
<label for="verse-choose">Choose a verse</label>
<select id="verse-choose" name="verse-choose">
<option>Verse 1</option>
<option>Verse 2</option>
<option>Verse 3</option>
<option>Verse 4</option>
</select>
</form>
<h2>The Conqueror Worm, <em>Edgar Allen Poe, 1843</em></h2>
<pre>
</pre>
<script>
const verseChoose = document.querySelector('select');
const poemDisplay = document.querySelector('pre');
verseChoose.onchange = function () {
const verse = verseChoose.value;
updateDisplay(verse);
};
function updateDisplay(verse) {
// verse = verse.replace(" ", "");
// verse = verse.toLowerCase();
// let url = verse + '.txt';
let url = 'http://127.0.0.1:5000/';
fetch(url, { }).then(function (response) {
response.text().then(function (text) {
poemDisplay.textContent = text;
});
});
}
updateDisplay('Verse 1');
verseChoose.value = 'Verse 1';
</script>
`