[英]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告诉我响应为空:
从Angular发送的请求标头告诉我的服务,它接受application/json
和plain/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.