Tôi đã thực hiện một số nghiên cứu trên internet, nhưng tôi không quản lý để có được bức tranh hoàn chỉnh về chủ đề này. Bất cứ ai có thể giúp đỡ để giải quyết câu trả lời này cho bây giờ và mãi mãi?Tôi có thể đặt tiêu đề trong yêu cầu json miền chéo không?
Đây là những gì tôi tìm thấy cho đến nay:
- Có thể làm cuộc gọi miền chéo với jsonp. Thay đổi tiêu đề trong cuộc gọi jsonp không bao giờ được phép
- Có thể thực hiện cuộc gọi tên miền chéo với json nếu máy chủ cho phép.
Đây là những gì tôi đang cố gắng để làm:
$.ajax({
type: "GET",
crossDomain: true,
beforeSend: function (request) {
request.setRequestHeader("Authorization", "Bearer " + ($("#accesstoken").val()));
},
contentType: "application/json; charset=utf-8",
url: myJSonServer + encodeURI(operation),
dataType: 'json',
cache: false,
success: callback,
error: function (jqXhr, textStatus, errorThrown) { alert(textStatus + ": " + errorThrown); }
});
Đây là những gì đang xảy ra:
- Khi myJSonServer là trên cùng một tên miền, không có vấn đề gì cả
- Khi myJSonServer nằm trên một tên miền khác, yêu cầu được gửi đi, nhưng không có tiêu đề Bearer
Tiêu đề bộ râu này là một phần của tiêu chuẩn oAuth2.
Tôi nhận thức được thực tế rằng có lẽ đây không phải là giải pháp tốt nhất, thiết lập accessToken trong Trình duyệt. Và tôi biết tôi có thể sử dụng proxy cho tình huống này.
Tôi chỉ tò mò nếu có hoặc sẽ có thể đặt tiêu đề trên yêu cầu json giữa nhiều miền?
Cảm ơn
- Vấn đề giải quyết
Tôi đã sử dụng MVC4 và thêm crossDomainScriptAccessEnabled = "true" trong web.config. Tôi nghĩ điều này sẽ là đủ, nhưng câu trả lời của apsillers đã giải quyết được vấn đề của tôi. Bây giờ tôi đã bổ sung này trong web.config của tôi:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Authorization" />
</customHeaders>
</httpProtocol>
</system.webServer>
Bản sao có thể có của [header-Authorization'-cross-origin 'với jquery.ajax()] (http://stackoverflow.com/questions/9559947/cross-origin-authorization-header-with-jquery-ajax). – apsillers