ใช่ฉันรู้ว่าคุณกำลังคิดอะไร - ยังเป็นคำถาม CORS อีกคำถาม แต่คราวนี้ฉันนิ่งงัน
ดังนั้นในการเริ่มต้นข้อความแสดงข้อผิดพลาดจริง:
XMLHttpRequest ไม่สามารถโหลดhttp: //localhost/Foo.API/token ค่าของ 'การเข้าถึงการควบคุมอนุญาตให้-กำเนิด' หัวในการตอบสนองจะต้องไม่เป็นสัญลักษณ์แทน '*' เมื่อมีการร้องขอของโหมดข้อมูลประจำตัวคือ 'รวมถึง' Origin ' http: // localhost: 5000 ' จึงไม่อนุญาตให้เข้าถึง โหมดหนังสือรับรองของคำขอที่เริ่มต้นโดย XMLHttpRequest ถูกควบคุมโดยแอตทริบิวต์ withCredentials
ฉันไม่แน่ใจว่าโหมดข้อมูลรับรองหมายถึงอะไรคือ 'รวม' ?
ดังนั้นเมื่อฉันดำเนินการตามคำขอในบุรุษไปรษณีย์ฉันไม่พบข้อผิดพลาดดังกล่าว:
แต่เมื่อฉันเข้าถึงคำขอเดียวกันผ่านเว็บแอป angularjs ฉันรู้สึกสะดุดกับข้อผิดพลาดนี้ นี่คือคำขอ / การตอบกลับ angualrjs ของฉัน ดังที่คุณจะเห็นการตอบสนองOK 200
แต่ฉันยังคงได้รับข้อผิดพลาด CORS:
คำขอและการตอบกลับของ Fiddler:
ภาพต่อไปนี้แสดงคำขอและการตอบกลับจากส่วนหน้าเว็บไปยัง API
จากโพสต์อื่น ๆ ทั้งหมดที่ฉันอ่านทางออนไลน์ดูเหมือนว่าฉันกำลังทำสิ่งที่ถูกต้องนั่นคือเหตุผลที่ฉันไม่เข้าใจข้อผิดพลาด สุดท้ายนี่คือรหัสที่ฉันใช้ภายใน angualrjs (โรงงานล็อกอิน):
การติดตั้ง CORS ใน API - วัตถุประสงค์ในการอ้างอิง:
วิธีที่ 1 ที่ใช้:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
EnableCrossSiteRequests(config);
}
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(cors);
}
}
วิธีที่ 2 ที่ใช้:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
ขอบคุณมากล่วงหน้า!
*
- ดังนั้นฝั่งเซิร์ฟเวอร์กำลังทำ CORS ผิด - โอ้และบุรุษไปรษณีย์ก็ทำงานได้เนื่องจาก ไม่ใช่คำขอข้ามแหล่งกำเนิด