2011-06-12 116 views
5

我正在使用SharePoint 2010 REST API,它可以以xml或JSON格式返回数据。对于我的场景,我需要JSON。AJAX返回JSON - 我错过了什么?

一切工作正常使用jQuery:

$.ajax({ 
    type:"GET", 
    url:url, 
    dataType:"json", 
    success: function(data, textStatus, jqXHR){...} 
    }); 

但我不能在普通的JavaScript得到JSON,数据以XML格式返回。我错过了什么?

var XHR=new XMLHttpRequest(); 
XHR.open("GET", url, true); 
XHR.setRequestHeader("Content-Type","application/json"); 
XHR.onreadystatechange = function() { 
if (XHR.readyState == 4 && XHR.status == 200) {...}}; 
XHR.send(null); 
+0

打开Chrome开发人员工具中的“网络”标签。检查jQuery请求的HTTP请求标头,并将它们与执行普通Ajax请求时发送的请求标头进行比较... – 2011-06-12 15:40:58

回答

6

我相信这是引擎盖,应该尊重Accept标题下一个WCF OData服务。

var XHR=new XMLHttpRequest(); 
XHR.open("GET", url, true); 
XHR.setRequestHeader("Accept","application/json"); 
XHR.onreadystatechange = function() { 
if (XHR.readyState == 4 && XHR.status == 200) {...}}; 
XHR.send(null); 
+0

就是这样,谢谢! – Christophe 2011-06-13 00:33:30

0
XHR.setRequestHeader("Content-Type","application/json"); 

你真的想告诉它你发送JSON服务器?

+0

有我的错误,我试图接受json。 – Christophe 2011-06-13 00:31:27