繁体   English   中英

Angular和Firefox告诉我我的OAuth调用响应错误,Fiddler告诉我否则

[英]Angular and Firefox tell me the response from my OAuth call is wrong, Fiddler tells me otherwise

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

提琴手截图

我必须说,我收到了Fiddler的以下消息:

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

屏幕截图是在我单击解码后拍摄的。

但是Angular正在进入$http的错误功能,Firefox告诉我响应为空:

Firefox屏幕截图

从Angular发送的请求标头告诉我的服务,它接受application/jsonplain/text (和*/* )。

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

UPDATE

我认为原因是响应是以“块状”格式发送的。 Angular的$http无法处理分块的响应。 现在找出为什么我的服务器/ Drupal发送如此小的响应的分块响应以及如何避免它。 或者如何在Angular中接受分块响应。

更新2

我已经成功地把这种行为在拨弄使用jQuery。 它所调用的资源未受保护,因此我的问题与OAuth无关(我将在以后尝试重写它)。 我不确定这是分块的响应还是CORS。

但是,通过Fiddler,我可以看到我收到了包含所有数据的响应(浏览资源时您在浏览器中看到的数据相同。尽管您必须先在Fiddler中“解压缩”它)。

还是即使响应返回,我的浏览器还是因为CORS阻止了它?

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

XMLHttpRequest cannot load http://www.gentlesite.be/drupal/api/nodes. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

除非其他站点明确选择加入,否则同源策略禁止您的JavaScript从另一个站点读取内容。 请参阅此帖子以了解Same-Origin-Policy。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM