كيفية تعيين رؤوس HTTP في Go (CORS، Content-Type وغيرها)
مرحباً بالجميع! أنا مطور Go مبتدئ وأكتب أول REST API خاص بي باستخدام net/http. واجهت مشكلة: الواجهة الأمامية الخاصة بي (React، تعمل على localhost:3000) لا تستطيع إرسال الطلبات إلى الخادم (localhost:8080) بسبب CORS.
أحاول تعيين الرؤوس يدوياً، ولكن هناك خطأ ما. إليك الكود الخاص بي:
```go
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
fmt.Fprintf(w, `{"message": "Hello"}`)
}
func main() {
http.HandleFunc("/api", handler)
http.ListenAndServe(":8080", nil)
}
```
المشكلة هي أنه عندما أقوم بطلب POST مع جسم JSON، لا يزال المتصفح يعطي خطأ CORS. حاولت إضافة الرؤوس في أماكن مختلفة - قبل وبعد كتابة الرد - ولكن النتيجة نفسها. قرأت أيضاً عن middleware، لكنني لا أفهم كيفية تطبيقها على جميع المسارات في وقت واحد.
أرشدوني إلى كيفية تعيين رؤوس HTTP بشكل صحيح.