Vâng, tôi biết bạn đang nghĩ gì - một câu hỏi khác của CORS, nhưng lần này tôi bối rối.
Vì vậy, để bắt đầu, thông báo lỗi thực tế:
XMLHttpRequest không thể tải http: //localhost/Foo.API/token . Giá trị của tiêu đề 'Access-Control-Allow-Origin' trong phản hồi không được là ký tự đại diện '*' khi chế độ thông tin xác thực của yêu cầu là 'bao gồm' . Nguồn gốc ' http: // localhost: 5000 ' do đó không được phép truy cập. Chế độ thông tin xác thực của các yêu cầu do XMLHttpRequest khởi xướng được kiểm soát bởi thuộc tính withCredentials.
Tôi không chắc ý nghĩa của chế độ thông tin xác thực là 'bao gồm' ?
Vì vậy, khi tôi thực hiện yêu cầu trong bưu tá, tôi không gặp phải lỗi như vậy:
Nhưng khi tôi truy cập cùng một yêu cầu thông qua ứng dụng web anglejs của mình, tôi đã bị lỗi này. Đây là yêu cầu / phản hồi angualrjs của tôi. Như bạn sẽ thấy phản hồi là vậy OK 200
, nhưng tôi vẫn nhận được lỗi CORS:
Yêu cầu và phản hồi của Fiddler:
Hình ảnh sau minh họa yêu cầu và phản hồi từ giao diện người dùng web tới API
Vì vậy, dựa trên tất cả các bài viết khác mà tôi đã đọc trên mạng, có vẻ như tôi đang làm đúng, đó là lý do tại sao tôi không thể hiểu lỗi. Cuối cùng, đây là mã tôi sử dụng trong angualrjs (nhà máy đăng nhập):
Triển khai CORS trong API - Mục đích tham khảo:
Phương pháp 1 được sử dụng:
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);
}
}
Phương pháp 2 được sử dụng:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
Rất cám ơn trước!
*
- do đó, phía máy chủ đang làm sai CORS - ồ, và người đưa thư hoạt động vì nó không phải là một yêu cầu nguồn gốc chéo