Sam*_*gNY 4 html javascript web-services ios cloudkit
我正在使用Apple的新CloudKit JS参考和示例代码来构建一个简单的CRUD应用程序.在我甚至可以进入CRUD之前,我被Apple身份验证停止了.
index.html
<html>
<body>
<div id="apple-sign-in-button">Sign in
<span id="username"></span>
</div>
<script>
/*
* Initialize the global objects we will need.
*/
if(typeof CKCatalog === 'undefined') {
CKCatalog = {};
}
if(typeof CKCatalog.tabs === 'undefined') {
CKCatalog.tabs = {
'readme': [{}],
'not-found': [{}]
};
}
</script>
<script src="js/init.js"></script>
<script src="js/cloudkit-code-samples/authentication.js"></script>
<script>
window.addEventListener('cloudkitloaded',CKCatalog.init);
</script>
<script async src="https://cdn.apple-cloudkit.com/ck/1/cloudkit.js"> </script>
</body>
Run Code Online (Sandbox Code Playgroud)
包括div id ="apple-sign-in-button"和span id ="username"除去了所有错误,除了:
无法加载资源:服务器响应状态为421(错误请求).
在任何其他地方提及此错误通常都与SMTP或FTP绑定.知道发生了什么事吗?
CloudKit.js库是CloudKit Web服务的包装器,其文档指出HTTP 421在调用需要身份验证的请求时发生,但用户未登录.
这是预期的,因为您的应用可能需要确定用户是否已登录,如果没有,则显示相应的登录按钮.关于身份验证的CloudKit目录示例部分显示了如何通过调用来设置它container.setUpAuth(),这将检查用户并在未检测到任何人的情况下呈现登录按钮.这可能发生在你的init.js代码中,但没有看到它我不能确定.
我看到你apple-sign-in-button的页面上有div.如果您正在调用该setUpAuth方法,那么您应该看到在其中呈现的"登录"按钮.
一旦用户点击该按钮并登录,您就可以重新发出收到421的原始请求,并且应该获得有效的200.
不要忘记,如果要保留用户的CloudKit会话,可以auth: { persist: true }在初始化Container时使用(有关更多信息,请参阅CloudKit.js文档).
您还需要确保已在Container的CloudKit仪表板中创建API令牌.这是初始化Container时使用的令牌.查看关于CloudKit JS和Web服务的WWDC 2015视频,以查看此演示.
我希望有所帮助!
更新:
在测试Web应用程序时,请确保已配置API令牌(使用CloudKit仪表板)以允许您正在测试的域(例如localhost).这最初是Sam的问题,但localhost现在是开发环境中API令牌的受支持域.
| 归档时间: |
|
| 查看次数: |
4688 次 |
| 最近记录: |