Ios Phonegap中的OAuth Facebook登录返回InvalidHeader错误

Ios Phonegap中的OAuth Facebook登录返回InvalidHeader错误,ios,xcode,cordova,oauth,Ios,Xcode,Cordova,Oauth,我正在使用Phonegap开发一个应用程序,它实现了一个Facebook登录,使用用户id作为参考来保存一些数据。我使用OAuth.io库来实现登录对话框,在web浏览器和Android中一切都运行顺利,但当我在XCode中测试应用程序并点击登录按钮时,出现以下错误 在文件中找不到主机名:///来自静态 代码:InvalidHeader 消息:无法在文件中找到主机名:///来自静态 我猜这与phonegap没有发出外部请求有关,因为该应用程序实际上不是托管在域中,而是在本地运行。。。有什么想法吗

我正在使用Phonegap开发一个应用程序,它实现了一个Facebook登录,使用用户id作为参考来保存一些数据。我使用OAuth.io库来实现登录对话框,在web浏览器和Android中一切都运行顺利,但当我在XCode中测试应用程序并点击登录按钮时,出现以下错误

在文件中找不到主机名:///来自静态
代码:InvalidHeader
消息:无法在文件中找到主机名:///来自静态


我猜这与phonegap没有发出外部请求有关,因为该应用程序实际上不是托管在域中,而是在本地运行。。。有什么想法吗?

我在使用oauth.io时遇到了一个类似的问题。原来是我的Ajax预过滤器将请求更改为Facebook(它为每个请求的标题添加了参数)。无论这是否是你的问题,你需要做的是将一个成功的Facebook请求与一个不成功的Facebook请求进行比较,这将告诉你哪里出了问题。另外,一个空白的phonegap应用程序,除了必需的oauth代码之外没有其他代码,应该可以工作,这将是一个很好的起点来隔离您的问题。

我两年前一直在使用phonegap。虽然我以前没有连接到facebook,但我通过oauth连接到了其他网站。我可以向您展示我的解决方案

首先,您应该知道OAuth是如何工作的。您可以从facebook开发者网站或其他网站阅读OAuth 2.0

其次,你应该知道你的目标:token,uid,expires\u time。最重要的是token

第三,就这么做吧。2010年,我通过使用Phonegap儿童浏览器插件(现在Phonegap有一个InApp浏览器)和一个light服务器解决了这个问题

为什么我应该使用轻型服务器?该服务器可以帮助我处理OAuth服务中的重定向并执行缓存

步骤1:我编写了脚本来连接我的服务器,我的服务器连接到OAuth服务(facebook)

第2步:OAuth服务(Facebook)进行响应并重定向到Facebook登录页面

步骤3:输入用户名和密码后,OAuth服务(Facebook)将重定向到另一个url,并使用一些代码或令牌进行回调

第4步:如果你得到了令牌,保存它,如果你愿意,用它连接OAuth服务(Facebook)


当我在您的描述中看到“无法在文件中找到主机名:///来自静态”时,我知道您可能会对OAuth感到困惑。现在,我建议您使用一些服务器端代码来处理它,并使您的OAuth进程成为可能。

似乎您使用的是OAuth.js库而不是phonegap版本 在主页“index.html”中添加对正确js文件的引用

<script src="oauth-phonegap.js"></script>


然后按照说明构建应用程序

有什么想法吗?我也有同样的情况。看看这个嘿@Aravinth,我想到了,但我确信我使用的是正确的版本,JS插件的PhoneGap版本,而不是web版本。有一件事是,我已经向插件制造商发送了几封电子邮件,但没有回复:/…奇怪的是,这封邮件说,问题也存在于Android系统中,它发生在Android和iOS上,因为它是PhoneGap的基于web的插件。我在两三周前联系了OAuth.io的人,他们没有给我任何帮助。我想我将不得不使用其他东西,一个定制的开发,就像在这里找到的: