Javascript Angular和Firefox告诉我OAuth调用的响应是错误的,Fiddler告诉我不是这样

Javascript Angular和Firefox告诉我OAuth调用的响应是错误的,Fiddler告诉我不是这样,javascript,angularjs,oauth,response,fiddler,Javascript,Angularjs,Oauth,Response,Fiddler,我正在开发Cordova应用程序,需要通过OAuth对Drupal后端进行身份验证。我正在尝试获取请求令牌。我收到了200条回复,通过Fiddler我可以看到我得到了我的代币: 我必须说我从Fiddler那里得到了以下信息: 响应已编码,可能需要在检查前解码。单击此处进行转换 截图是在我点击解码后拍摄的 但是Angular正在输入错误函数$http,Firefox告诉我响应为空: 从Angular发送的请求头告诉我的服务它接受application/json和plain/text(和*/*)

我正在开发Cordova应用程序,需要通过OAuth对Drupal后端进行身份验证。我正在尝试获取请求令牌。我收到了200条回复,通过Fiddler我可以看到我得到了我的代币:

我必须说我从Fiddler那里得到了以下信息:

响应已编码,可能需要在检查前解码。单击此处进行转换

截图是在我点击解码后拍摄的

但是Angular正在输入错误函数
$http
,Firefox告诉我响应为空:

从Angular发送的请求头告诉我的服务它接受
application/json
plain/text
(和
*/*

有人能告诉我为什么Fiddler告诉我有回应,而Firefox和Angular告诉我没有?是解码吗?如果是这样,我希望我可以在
$http
中添加一个函数来转换响应。但是在这个函数中,我可以看到
数据
参数是“”(一个空字符串)

更新

我认为原因是响应是以“分块”格式发送的。Angular的
$http
无法处理分块响应。现在,我们来了解为什么我的服务器/Drupal会为这么小的响应发送分块响应,以及如何避免它。或者如何以角度接受分块响应

更新2

我已经成功地使用jQuery将这种行为放到了一个数据库中。它调用的资源没有受到保护,因此我的问题与OAuth没有什么关系(稍后我将尝试重写它)。我不确定这是分块反应还是CORS

但是通过Fiddler,我可以看到我得到了一个包含所有数据的响应(与你浏览时在浏览器中看到的数据相同。尽管你必须先在Fiddler中“取消锁定”


或者,即使响应返回,我的浏览器是否因为CORS而阻止它?

如果点击F12并查看浏览器的错误控制台,您将看到:

XMLHttpRequest无法加载http://www.gentlesite.be/drupal/api/nodes. 请求的资源上不存在“Access Control Allow Origin”标头。Origin'http://fiddle.jshell.net因此,不允许访问。


同源策略阻止JavaScript从另一个站点读取内容,除非另一个站点显式选择加入。有关同源策略的介绍,请参阅。

Web浏览器(尤其是XmlHttpRequest对象)将为您自动解码和取消锁定HTTP响应;无法禁用该功能。您的浏览器控制台是否有任何其他信息,特别是任何关于CORS错误的信息?好吧,除非我弄错了,否则如果浏览器取消锁定,那就太好了。但是,Angular和jQuery(我尝试了两种方法)输入他们的错误函数。没有额外的错误信息。但是状态码(正如你在我的屏幕截图中看到的,是200)。关于CORS,我不是这方面的专家。但我已经成功地为未受保护的资源获得了相同的行为,因此我将其置于了一个混乱中:。想象一下我尴尬地叹息。事实上,在我重新启用控制台中的安全消息之后(我一定是因为某种原因而在不久前禁用了该消息)。非常感谢!