我正在編寫需要訪問使用oAuth 2.0進行身份驗證的minus.com的Chrome擴展的代碼,所以我編寫了一個JavaScript文件'test.js',然後將其包含在HTML文件'test.html'中,然後在Chrome中加載'test.html'以測試用於驗證的JavaScript代碼。Chrome中的錯誤:「原始文件://不被Access-Control-Allow-Origin允許」
的「test.js」看起來像這樣的結構:
function Ajax(url, options) {
// some function content
// Sending data
if (options.method === "POST" && (options.params || options.binaryData)) {
if (options.binaryData) {
xhr.sendAsBinary(options.binaryData);
} else {
xhr.send(hashToQueryString(options.params));
}
} else {
xhr.send(null);
}
return xhr;
}
function refreshToken(refresh_token) {
var params = {
'grant_type': 'refresh_token',
'client_id': API_KEY,
'client_secret': API_SECRET,
'refresh_token': refresh_token,
'scope': 'read_all modify_all upload_new'
}
new Ajax("https://minus.com/oauth/token", {
params: params,
onSuccess: function(response) {
console.log(response.access_token);
},
onError: function(response) {
console.log('error: wrong_token');
}
});
}
refreshToken();
當我加載Chrome中的「的test.html」測試「test.js」,它促使在控制檯的錯誤,說「XMLHttpRequest無法加載https://minus.com/oauth/token?...原始文件://不被Access-Control-Allow-Origin允許。」我嘗試使用「--allow-file-access-from-files」或「--disable-web-security」選項啓動Chrome,但它沒有解決問題。但是,如果我在「Ajax」函數中評論了「發送數據」部分,則沒有錯誤。
有沒有人有想法這裏發生了什麼?
謝謝!
我相信你正在調用你的請求跨域。如果您這樣做,Chrome瀏覽器將發出此錯誤。 – Raptor 2012-03-23 03:04:03
那麼如何解決這個問題? – chaohuang 2012-03-23 03:07:00