cross-origin'Authorization'-header我試圖發送一個跨域的域並添加一個自定義的'授權'標題。 請參閱下面的代碼。jquery.ajax()
錯誤:
的XMLHttpRequest不能加載{URL}。請求標頭字段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());
}
我也試過:
headers : { 'Authorization' : getToken() },
在Ajax請求
。
難道是jQuery的ajax框架阻止交叉來源認證?我怎樣才能解決這個問題?
更新:
順便說一句:有沒有那麼存儲在客戶端的auth.key在cookie中更安全的方法? getToken()將被更復雜的方法取代,散列正文,日期等。
你的'getToken()'方法不會返回任何東西。 – istepaniuk 2013-04-29 11:58:50