Tôi đang cố gắng tìm ra những gì tôi đang thiếu trong cách tiếp cận của mình ngăn cản dịch vụ WCF của tôi không bị truy cập. Nếu tôi cố gắng truy cập dịch vụ thông qua yêu cầu AJAX từ cùng một miền, thì không có vấn đề gì.jQuery AJAX CORS với dịch vụ ASP.NET WCF không hoạt động mặc dù các mục nhập web.config
Tôi đã thực hiện lời khuyên mà tôi đã thấy ở nơi khác trên trang web để thêm vào thẻ <httpProtocol>
trong web.config để bật CORS, nhưng dường như không hoạt động (lưu ý một vài yếu tố đầu tiên trong customHeaders đang có vì lý do bảo mật khác nhau):
<location path="FooBar.svc">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Request-Method" value="POST"/>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, X-Requested-With, X-Custom-Header" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>
Mặc dù việc này là tại chỗ, tôi vẫn nhận được một lỗi (sử dụng IE Developer Tools) khi cố gắng gọi cho dịch vụ từ một trang riêng biệt: "XMLHttpRequest cho .. Yêu cầu Chia sẻ tài nguyên gốc chéo (CORS) "
Cuộc gọi jQuery ajax của tôi (Bài đăng) có các giá trị được đặt để sử dụng với CORS, cũng như:
crossDomain: true,
xhrFields: { withCredentials: true },
Tôi thậm chí đã cố gắng thêm một sửa chữa cho các vấn đề IE XDR tiềm năng, từ https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js, không có hiệu lực thi hành (Tôi đang sử dụng IE11, vì vậy tôi sẽ không mong đợi nó)
Bất cứ ai có bất cứ ý tưởng như những gì có thể xảy ra ở đây?
(EDIT: bản thân dịch vụ được thiết lập với các thuộc tính, nếu nó làm cho một sự khác biệt:
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json)]
)
(EDIT 2: Trong trường hợp đó là có ý nghĩa, dịch vụ đó có phải là một phần của trang web tất cả HTTPS sử dụng Xác thực biểu mẫu - và dịch vụ cần sử dụng thông tin đăng nhập tương tự như trang web. )
Bạn đã thử gọi dịch vụ bằng cách sử dụng một cái gì đó như người đưa thư? Bạn có thể thấy Access-Control-Allow-Origin trong tiêu đề phản hồi http không? –
Thật không may, tôi không thể cài đặt bất cứ thứ gì trên máy làm việc của mình, vì vậy tôi phải chờ quá trình yêu cầu nó đi qua trước khi tôi có được bất kỳ công cụ hữu ích nào (và dịch vụ không có sẵn trên bên ngoài). Tôi đã hy vọng để có được một bước nhảy vọt về điều này. – notnot
máy chủ phụ trợ plz? – Akki619