Tôi đang cố gắng gửi tên miền có nguồn gốc chéo và thêm tiêu đề 'Ủy quyền' tùy chỉnh. Vui lòng xem mã bên dưới.tiêu đề 'Authorization'-cross-origin' với jquery.ajax()
Lỗi:
XMLHttpRequest không thể tải {url}. Yêu cầu trường tiêu đề Ủy quyền không được cho phép bởi Access-Control-Allow-Headers.
function loadJson(from, to) {
$.ajax({
//this is a 'cross-origin' domain
url : "http://localhost:2180/api/index.php",
dataType : 'json',
data : { handler : "statistic", from : from, to : to
},
beforeSend : setHeader,
success : function(data) {
alert("success");
},
error : function(jqXHR, textStatus, errorThrown) {
alert("error");
}
});
}
function getToken() {
var cookie = Cookie.getCookie(cookieName);
var auth = jQuery.parseJSON(cookie);
var token = "Token " + auth.id + ":" + auth.key;
}
function setHeader(xhr) {
xhr.setRequestHeader('Authorization', getToken());
}
Tôi cũng đã cố gắng:
headers : { 'Authorization' : getToken() },
trong yêu cầu ajax.
Có thể khung công tác jquery-ajax đang chặn Xác thực gốc chéo không? Làm thế nào tôi có thể sửa lỗi này?
Cập nhật:
Bằng cách này: là có một phương pháp an toàn hơn để lưu trữ các auth.key trên client-side sau đó trong một cookie? getToken() sẽ được thay thế bằng một phương thức phức tạp hơn, băm nhỏ cơ thể, ngày tháng, v.v.
Phương thức 'getToken()' của bạn không trả lại bất kỳ điều gì. – istepaniuk