2016-02-10 92 views
1

我想設置一個角度js的$ http.post請求頭的授權。

上簡單的HTML AJAX它的工作原理:

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { //do something 
    } 
}; 
xhttp.open("POST", url, true); 
xhttp.setRequestHeader("Authorization", "xxxxxxxxxx"); 
xhttp.send(); 

在角度我得到一個錯誤信息 - "Cannot read property 'protocol' of undefined"

var configHeader = { 
    headers: { 
    'Authorization': 'xxxxxx' 
    } 
}; 

$http.post(url, configHeader).then(function(response) { 
    //do something 
}); 

請幫助。

+0

你在你的依賴加上'$ http'? – gr3g

回答

0

按照文檔

var configHeader = { 
    headers: { 
    'Authorization': 'xxxxxx' 
    } 
}; 

$http.post(url, {}, configHeader).then(function(response) { 
    //do something 
}); 
+0

嗨Rajith,我試過這個,並得到了同樣的錯誤加上「xhttp沒有定義」。 – Eliran

+0

什麼xhttp?服務名稱是$ http –

+0

@Eliran嗨,xhttp是第一個。您尚未在第二種情況下定義變量。 – RRK

0

$http.post有3個參數:

  • 網址
  • 數據
  • 配置(選配)

你缺少數據後...

+0

嗨jacron,我試圖添加一個空的數據對象,但它也沒有工作。我有同樣的錯誤。 – Eliran

0

樣品的角度要求:

var req = { 
method: 'POST', 
url: 'http://example.com', 
headers: { 
Content-Type': undefined 
}, 
data: { test: 'test' } 
} 

我猜,你configHeader應該是configHeader: {'Authorization': 'xxx'}

0

最後我找到了答案!

只有在開發人員工具上使用斷點時,chrome中會有一些錯誤纔會產生此錯誤。我刪除了中斷點,並且這個錯誤再也沒有出現在控制檯上。

僅供參考 - 這是之前我已經刪除了破發點已經顯示在Chrome控制檯上的錯誤:

enter image description here