我正在编写一个Phonegap应用程序,该应用程序需要能够调用由CAS保护的远程Web服务。该应用程序还将作为移动网站托管在我们的webfarm上(减去硬件特定部分)。
我们的CAS服务器由server1托管,我们的Web服务托管在server2上。移动网站托管在server2上。
我从Javascript调用的任何调用都会出现跨域错误。我意识到这不是手机的问题,但是由于在桌面上运行时开发变得如此简单,因此避免它会很好。
目前,我有一个包含以下内容的工作设置:
- Javascript通过https调用server2上的服务器端脚本,包括标题中的用户名和密码。
- 该脚本调用CAS'RESTful api并获取授予cookie的票证。该脚本在响应中创建一个Set-Cookie标头,或者报告返回时出现登录错误。
- Javascript获取响应并创建cookie(虽然这个cookie在Phonegap中无法检测到(在document.cookie中没有任何内容),即使它已被传递了。)
- Javascript然后调用一个服务器端脚本,为它调用web服务,传递带有请求的cookie(我必须手动将cookie插入请求头,即使它自动在javascript的请求中传递)。
- 服务器端脚本将结果发送到javascript。
醇>
有更好的方法吗?我已经看到在CAS中提到代理票,但找不到足够的信息来知道它是我需要的还是如何使用它们。
谢谢。