2016-11-01 76 views
0

默認情況下,從Sharepoint API返回的數據是用XML編碼的,但我期待獲取JSON。我正在使用jQuery進行ajax調用。我相信這應該通過傳遞一個標題與ajax請求一樣,如

{ "accept": "application/json; odata=verbose" } 

我已經嘗試過這兩種不同的方式。

$.ajax({ 
    url: "url/to/web/api", 
    type: "GET", 
    headers: { "accept": "application/json; odata=verbose"} 
}) 
.done(function(data) { 
}) 

function setHeaders(xhr) { 
    xhr.setRequestHeader('accept', 'application/json; odata=verbose') 
} 

$.ajax({ 
    url: "url/to/web/api", 
    type: "GET", 
    beforeSend: setHeaders 
}) 
.done(function(data) { 
}) 

這兩個已經返回XML。從郵遞員打來電話並將郵件頭傳入時,我已成功獲取JSON。有沒有人看到我做錯了什麼?

+0

什麼Sharepoint版本? – ceejayoz

+0

這是2007年,但我正在使用2013文檔。郵遞員電話工作,所以我認爲該設置是正確的。 –

回答

0

您是否試過在您的要求中添加dataType

$.ajax({ 
    url: "url/to/web/api", // <-- also, you had a dot here 
    type: "GET", 
    headers: { "accept": "application/json; odata=verbose"} 
    dataType: "json" // <-- right here 
}) 
.done(function(data) { 
}) 

更新:我認爲你真正的問題是,小錯字(點而不是逗號)。

+0

對不起。在離開工作以趕超高峯時間之前,我很快就打了答案(無法從虛擬桌面複製和粘貼)。我可以保證沒有導致問題的語法錯誤。 –

+0

你有沒有嘗試'dataType'屬性到你的'ajax'請求? – technophobia

0

根據this answer有在SharePoint 2007

沒有原生JSON發光終點的基於SOAP的的.asmx Web服務只能發出XML響應。