2015-11-08 44 views
0

如何獲得具有「401 Unauthorize」狀態的jsonp數據。如何獲得具有「401 Unauthorize」狀態的jsonp數據?

這是我的代碼:

<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
<meta charset="utf-8" /> 
 
<title>Script</title> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> 
 
</head> 
 
<body> 
 
<h1>Script</h1> 
 
<pre id="output">Loading…</pre> 
 
<script> 
 
function getcode(data) { 
 
var data = JSON.stringify(data, undefined, 2); 
 
document.getElementById('output').innerHTML = data; 
 
} 
 
</script> 
 
<script src="https://localhost:7783/track?callback=getcode"></script> 
 
</body> 
 
</html>

此代碼工作的偉大,當我嘗試用 「HTTP 200」 身份獲得的數據。

示例響應401:

HTTP/1.1 401 Authorization Required 
 
Date: Sun, 08 Nov 2015 10:43:21 GMT 
 

 
getcode({"track":"4632874-423423-42342343123-32132131-432-43242-4324"})

所以,問題是: 如何獲得JSONP數據時,狀態爲401取消授權?我想得到這個「getcode({」track「:」4632874-423423-42342343123-32132131-432-43242-4324「})」?

謝謝你的幫助。

+0

只要沒有CORS問題,XMLHttpRequest(或fetch)將能夠讀取該值(但不會執行回調,您可以評估響應) –

+0

是否有任何選項可以繞過cors並獲得響應與HTTP 401狀態? – Tester

回答

0

你不能。

瀏覽器在發送HTTP錯誤狀態時不會執行腳本。

改爲使用XMLHttpRequest(和CORS,如果您需要跨源支持)。 JSONP是爲了解決相同的原始策略而引入的一種黑客技術,由於它是黑客攻擊,因此它有很多限制。 CORS是一個標準的,經過深思熟慮的解決方案,並且限制更少。