可以't使用Prototype.js登录Tiny Tiny RSS API
Can't log into Tiny Tiny RSS API using Prototype.js
我正试图为Tiny Tiny RSS构建一个阅读器,但几乎陷入僵局。我正在通过prototype.js(1.6.1)将该应用程序设置为使用ajax,并尝试简单登录该应用程序以检索密钥。
到目前为止,我拥有的是:
new Ajax.Request(Api.BASE_URL, {
method: "get",
parameters: {"op": "login", "user": "user", "password": "password"},
onSuccess: authSuccess,
onFailure: failure
})
其中Api.BASE_URL定义为"http://tt-rss.example.com/api/"
当我尝试登录时,我会得到错误响应"NOT_LOGGED_in",这似乎表明api无法识别我正在使用的操作调用,或者参数错误,或者其他什么。
特别奇怪的是,这应该相当于CURL命令:
curl-d'{"op":"login","user":"user","password":"password"}'http://tt-rss.example.com/api/
它工作正常。我觉得我错过了一些非常简单的东西,但不确定是什么。任何帮助都将不胜感激。
除了get-vs-post错误之外,问题还在于我试图使用错误的ajax选项传递一个复杂的json对象。
我用一个更简单的函数调用(isloggdin)进行了测试,所以我的json对象被定义为:
parameters: {"op": "isloggedin"},
当我使用"parameters"ajax选项时,请求以以下形式发送原始数据:
op=isloggedin&_=
它被拒绝了。
另一方面,来自cURL的原始数据看起来像:
{"op":"isloggedin"}
这是有效的。
这篇文章使我步入正轨。我需要使用"postBody"而不是"parameters"来正确发送数据。我的最后命令是这样的:
postBody: '{"op": "isloggedin"}',
它奏效了。此外,显然在这种情况下,引用的类型确实很重要。如果我在外部使用单引号,它会起作用。如果我在外部使用双引号,如果失败。
curl命令在POST请求中发送数据,而Ajax调用使用GET方法。根据tt-rss API文档,旧版本同时支持GET和POST,但现在必须在HTTPPOST数据中使用JSON对数据进行编码。
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 尝试使用Phonegap进行php登录
- Facebook登录按钮没有'不能在Firefox上工作
- 使用javascript反复检查用户在facebook上的登录状态
- Firebase-登录时获取url
- BrowserId登录请求在文档加载时被调用
- 通过iframe登录到远程站点
- Jquery Modal表单登录与AJAX-ASP经典上的IE 9
- 如何使用js自动登录
- 我尝试在登录脚本中使用ajax,但页面不会重定向
- 如何仅在首次登录时显示弹出窗口
- 如何检查用户已经登录facebook
- Facebook登录不适用于iOS的应用内浏览器
- Facebook登录按钮悬停框
- Phonegap:获取访问令牌时出现LinkedIn登录错误
- 如何检查用户是否使用$routeChangeStart登录angularjs
- Node.js Passport成功登录后显示用户名
- 有登录表单时无法提交表单
- Google 加号登录不会返回id_token
- 可以't使用Prototype.js登录Tiny Tiny RSS API