CORS समस्याओं को हल करने के लिए, आपको वेब सर्वर (जैसे Apache या Nginx), बैकएंड (जैसे Django, Go, या Node.js) में उपयुक्त हेडर जोड़ने होंगे। , या फ्रंटएंड फ्रेमवर्क में (जैसे रिएक्ट या नेक्स्ट.जेएस)। प्रत्येक प्लेटफ़ॉर्म के लिए चरण नीचे दिए गए हैं:
आप Apache की कॉन्फ़िगरेशन फ़ाइलों (जैसे .htaccess, httpd.conf, या apache2.conf) में या किसी विशिष्ट वर्चुअल होस्ट कॉन्फ़िगरेशन में CORS हेडर कॉन्फ़िगर कर सकते हैं।
CORS को सक्षम करने के लिए निम्नलिखित पंक्तियाँ जोड़ें:
Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" Header set Access-Control-Allow-Headers "Content-Type, Authorization"
Header set Access-Control-Allow-Origin "https://example.com"
Header set Access-Control-Allow-Credentials "true"
सुनिश्चित करें कि mod_headers मॉड्यूल सक्षम है। यदि नहीं, तो इसका उपयोग करके इसे सक्षम करें:
sudo a2enmod headers sudo systemctl restart apache2
Nginx में, आप CORS हेडर को nginx.conf में या एक विशिष्ट सर्वर ब्लॉक के भीतर कॉन्फ़िगर कर सकते हैं।
निम्न पंक्तियाँ जोड़ें:
server { location / { add_header Access-Control-Allow-Origin "*"; add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; add_header Access-Control-Allow-Headers "Content-Type, Authorization"; } # Optional: Add for handling preflight OPTIONS requests if ($request_method = OPTIONS) { add_header Access-Control-Allow-Origin "*"; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE"; add_header Access-Control-Allow-Headers "Authorization, Content-Type"; return 204; } }
add_header Access-Control-Allow-Credentials "true";
फिर Nginx को पुनरारंभ करें:
sudo systemctl restart nginx
Django में, आप django-cors-headers पैकेज का उपयोग करके CORS हेडर जोड़ सकते हैं।
pip install django-cors-headers
INSTALLED_APPS = [ ... 'corsheaders', ]
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ... ]
CORS_ALLOWED_ORIGINS = [ "https://example.com", ]
CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_HEADERS = ['Authorization', 'Content-Type'] CORS_ALLOW_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']
गो में, आप HTTP हैंडलर में CORS को मैन्युअल रूप से संभाल सकते हैं या rs/cors जैसे मिडलवेयर का उपयोग कर सकते हैं।
rs/cors मिडलवेयर का उपयोग करना:
go get github.com/rs/cors
package main import ( "net/http" "github.com/rs/cors" ) func main() { mux := http.NewServeMux() // Example handler mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, World!")) }) // CORS middleware handler := cors.New(cors.Options{ AllowedOrigins: []string{"https://example.com"}, // Or use * for all AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, AllowedHeaders: []string{"Authorization", "Content-Type"}, AllowCredentials: true, }).Handler(mux) http.ListenAndServe(":8080", handler) }
एक्सप्रेस (नोड.जेएस) में, आप कॉर्स मिडलवेयर का उपयोग कर सकते हैं।
npm install cors
const express = require('express'); const cors = require('cors'); const app = express(); // Enable CORS for all routes app.use(cors()); // To allow specific origins app.use(cors({ origin: 'https://example.com', methods: ['GET', 'POST', 'PUT', 'DELETE'], allowedHeaders: ['Authorization', 'Content-Type'], credentials: true })); // Example route app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(3000, () => { console.log('Server running on port 3000'); });
रिएक्ट में, CORS को बैकएंड द्वारा नियंत्रित किया जाता है, लेकिन विकास के दौरान, आप CORS समस्याओं से बचने के लिए API अनुरोधों को प्रॉक्सी कर सकते हैं।
{ "proxy": "http://localhost:5000" }
यह पोर्ट 5000 पर चल रहे आपके बैकएंड सर्वर पर विकास के दौरान प्रॉक्सी अनुरोध करेगा।
उत्पादन के लिए, बैकएंड को CORS को संभालना चाहिए। यदि आवश्यक हो, तो अधिक नियंत्रण के लिए http-प्रॉक्सी-मिडलवेयर जैसे टूल का उपयोग करें।
नेक्स्ट.जेएस में, आप एपीआई मार्गों में सीओआरएस को कॉन्फ़िगर कर सकते हैं।
export default function handler(req, res) { res.setHeader('Access-Control-Allow-Origin', '*'); // Allow all origins res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); res.setHeader('Access-Control-Allow-Headers', 'Authorization, Content-Type'); if (req.method === 'OPTIONS') { // Handle preflight request res.status(200).end(); return; } // Handle the actual request res.status(200).json({ message: 'Hello from Next.js' }); }
module.exports = { async headers() { return [ { source: '/(.*)', // Apply to all routes headers: [ { key: 'Access-Control-Allow-Origin', value: '*', // Allow all origins }, { key: 'Access-Control-Allow-Methods', value: 'GET, POST, PUT, DELETE, OPTIONS', }, { key: 'Access-Control-Allow-Headers', value: 'Authorization, Content-Type', }, ], }, ]; }, };
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3