Go 解决 HTTP 请求跨域问题
Go 跨域 HTTP About 1,495 words解决
请求头中添加Access-Control-Allow-Origin
和Access-Control-Allow-Headers
。
func CustomRequest(w http.ResponseWriter, req *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Add("Access-Control-Allow-Headers", "Content-Type")
if req.Method == http.MethodOptions {
return
}
// 省略
_, _ = w.Write(resp)
}
func main() {
http.HandleFunc("/CustomRequest", CustomRequest)
if err := http.ListenAndServe(":8080", nil); err!= nil {
log.Fatal(err)
}
}
验证
使用jQuery
验证。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script>
$.ajax({
type: "POST",
url: "http://127.0.0.1:8080/CustomRequest",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(
{
username: 'test123',
password: 'testpwd',
}),
dataType: "json",
success: function (result) {
alert(JSON.stringify(result));
},
error: function (result) {
alert(JSON.stringify(result));
}
});
</script>
</head>
<body>
</body>
</html>
注意
Access-Control-Allow-Origin
和Access-Control-Allow-Headers
不能写在if req.Method == http.MethodOptions
判断中。
Views: 3,194 · Posted: 2021-07-21
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...