AJAX返回JSON-我缺少什么?

AJAX返回JSON-我缺少什么?,ajax,json,sharepoint-2010,Ajax,Json,Sharepoint 2010,我使用的是SharePoint 2010 REST API,它可以返回xml或JSON格式的数据。对于我的场景,我需要JSON 使用jQuery时一切正常: $.ajax({ type:"GET", url:url, dataType:"json", success: function(data, textStatus, jqXHR){...} }); 但我无法在普通JavaScript中获取JSON,数据以xml形式返回。我错过了什么 var X

我使用的是SharePoint 2010 REST API,它可以返回xml或JSON格式的数据。对于我的场景,我需要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);

你真的想告诉它你正在向服务器发送JSON吗?

我相信这是一个隐藏的WCF oData服务,它应该尊重
Accept

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);
在Chrome的开发者工具中打开“网络”选项卡。检查jQuery请求的HTTP请求头,并将其与执行普通Ajax请求时发送的请求头进行比较。。。
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);