2017-08-04 28 views
0

在一個靜態html頁面中,我正在嘗試使REST GET調用獲取json數據。 我有一個URL,我可以在瀏覽器中打開帳戶+祕密的URL並在瀏覽器中獲取json數據。我不能給你正確的網址,但是這是什麼感覺:基本身份驗證休息調用來獲取json數據

http://123456:[email protected]/Media/service/id/323847.json 

我已經試過計算器上無數的例子都沒有成功! 這裏是我試過,我回來錯誤:錯誤

<script type="text/javascript"> 

function getRest(){ 

$.ajax({ 
    type: 'GET', 
    url: 'http://media.fakename.com/Media/service/id/323847.json', 
    dataType: 'json', 

    beforeSend: function (xhr) { 
    xhr.setRequestHeader('Authorization', basicOath('123456', 'ABCDEFGHIJKLM')); 
    }, 
    success: function() { 
    var myvar = data; 
    $(".text").html(myvar); 
    }, 
    error: function(jqXHR, status) { 
    $(".text").html("Error: " + status); 
    } 
}); 
} 

function basicOath(account, secret) { 
var tok = account + ':' + secret; 
var hash = btoa(tok); 
return 'Basic ' + hash; 
} 

</script> 

<input id="clickMe" type="button" value="get rest" onclick="getRest();" /> 
<div class="text">abc <br />' 

我能夠嘗試jQuery的典範之作休息調用來獲取影像。它完美的作品。 http://api.jquery.com/jquery.getjson/ 所以我知道我可以打出其他電話。

我在做什麼錯了?感謝您的幫助,因爲我已經掌握了堆棧和網頁上的所有示例。我撞到了一堵磚牆。

+0

在您的瀏覽器網絡控制檯中,請求獲取的響應代碼是什麼?注意,你的成功方法沒有'數據'作爲輸入參數,但你正在嘗試使用它。這將是不確定的。儘管你在做什麼似乎很奇怪。你正在獲取數據並將其粘貼在頁面上,但是你的'dataType'就像json所說的那樣,你期望響應是json(如果不是,那麼會出錯)。這是否準確?你想把原始的JSON放在頁面上嗎? – Taplar

+0

原始數據將進入數組。我只是把它放在頁面上進行測試。我得到未捕獲的SyntaxError:意外的令牌)並且對預檢請求的響應沒有通過訪問控制檢查:請求的資源上沒有「訪問控制 - 允許 - 來源」標頭。因此不允許Origin'http:// localhost'訪問。該響應具有HTTP狀態碼401. – piddler

+0

因此,有些語法錯誤的地方,並且您正在發出CORS請求被阻止。 – Taplar

回答

0
beforeSend: function (xhr) { 
    xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password)); 
},