* แก้ไข 1: ข้อผิดพลาดดูเหมือนจะเป็นเฉพาะกับ โพสต์
คำขอ
ฉันมีเว็บไซต์ส่วนหน้าบน โลคัลโฮสต์
.
มีการลงทะเบียนหน้าบน localhost/register
เว็บไซต์เรียกฟังก์ชันแบ็กเอนด์เพื่อลงทะเบียนผู้ใช้ที่ localhost:8080/api/register
ฉันใช้ Axios เพื่อโพสต์ชื่อผู้ใช้และรหัสผ่าน
เบราว์เซอร์ส่งคำขอสองรายการ: คำขอก่อนบิน OPTIONS และคำขอ POST
สร้างผู้ใช้สำเร็จแล้ว แต่เบราว์เซอร์แสดงข้อผิดพลาดสำหรับคำขอ POST:
เหตุผล: ไม่มีส่วนหัว CORS âAccess-Control-Allow-Originâ
และแน่นอนว่ามันขาดหายไปในการตอบกลับ POST
สมมติว่าไฟล์ cors ส่วนหลังของฉันได้รับการกำหนดค่าอย่างถูกต้อง ปัญหาอาจมาจากการรวมกันของการตั้งค่า Docker + Nginx ของฉันที่บล็อกหรือพร็อกซีส่วนหัวไปยังตำแหน่งที่ไม่ถูกต้อง
นี่คือการกำหนดค่า nginx ของฉัน:
เซิร์ฟเวอร์ {
ฟัง 8080;
ดัชนี index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
รูท /var/www/html/public;
ที่ตั้ง / {
try_files $uri $uri/ /index.php?$query_string;
}
ตำแหน่ง ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
เซิร์ฟเวอร์ {
ฟัง 80;
ที่ตั้ง / {
proxy_pass http://node:3000;
}
}
และนี่คือของฉัน นักเทียบท่า-compose.yml
:
เครือข่าย:
เครือข่ายของฉัน:
คนขับ: สะพาน
บริการ:
จิงซ์:
รูปภาพ: nginx:stable-alpine
ชื่อคอนเทนเนอร์: nginx
พอร์ต:
- "8080:8080"
- "80:80"
ปริมาณ:
- ./php:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
ขึ้นอยู่กับ:
- php
- โหนด
เครือข่าย:
- เครือข่ายของฉัน
php:
สร้าง:
บริบท: ./php
นักเทียบท่าไฟล์: Dockerfile
ชื่อคอนเทนเนอร์: php.ini
ผู้ใช้: "1,000:1,000"
ปริมาณ:
- ./php:/var/www/html
พอร์ต:
- "9000:9000"
เครือข่าย:
- มายเน็ทเวิร์ค
โหนด:
สร้าง:
บริบท: ./react
นักเทียบท่าไฟล์: Dockerfile
container_name: ถัดไป
ปริมาณ:
- ./react:/var/www/html
พอร์ต:
- "3000:3000"
เครือข่าย:
- มายเน็ทเวิร์ค
** แก้ไข 2:
แบ็กเอนด์คือ Laravel และมีมิดเดิลแวร์ CORS ที่ควรจะดูแล และในความเป็นจริงดูเหมือนว่าจะใช้งานได้เพราะ รับ
และ ตัวเลือก
ขอผ่านโดยไม่มีข้อผิดพลาดเท่านั้น โพสต์
คำขอแสดงข้อผิดพลาดนี้
นี่คือไฟล์กำหนดค่า CORS (cors.php
) ใน Laravel:
'เส้นทาง' => ['api/*', 'sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['http://localhost'],
'allowed_origins_patterns' => ['*'],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => จริง