Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Redmine REST API进行身份验证_Javascript_Html_Angularjs_Authentication_Redmine - Fatal编程技术网

Javascript 无法使用Redmine REST API进行身份验证

Javascript 无法使用Redmine REST API进行身份验证,javascript,html,angularjs,authentication,redmine,Javascript,Html,Angularjs,Authentication,Redmine,我正在为Redmine构建一个移动应用程序。因此,为了从Redmine服务器获取数据,我需要通过传递用户的密码和用户名来对用户进行身份验证。在Redmine API文档中,提到了两种身份验证方法 通过HTTP基本身份验证使用常规登录/密码 使用API密钥,这是一种避免输入密码的简便方法 在脚本中。API密钥可以以以下方式之一附加到每个请求: 以下方式: -作为“键”参数传入 -通过HTTP Basic以用户名和随机密码的形式传入 身份验证 -作为“X-Redmine-API-Key”HTTP头

我正在为Redmine构建一个移动应用程序。因此,为了从Redmine服务器获取数据,我需要通过传递用户的密码和用户名来对用户进行身份验证。在Redmine API文档中,提到了两种身份验证方法

  • 通过HTTP基本身份验证使用常规登录/密码
  • 使用API密钥,这是一种避免输入密码的简便方法 在脚本中。API密钥可以以以下方式之一附加到每个请求: 以下方式:
    -作为“键”参数传入
    -通过HTTP Basic以用户名和随机密码的形式传入 身份验证
    -作为“X-Redmine-API-Key”HTTP头传入(添加到Redmine中 1.1.0)
我尝试按如下方式发送get请求,我可以在浏览器中看到响应get请求的问题列表。但成功回调不会触发

var url= "http://username:password@redmine.qburst.com/issues.json";
$http({
    method: 'JSONP', 
    url: url
}).
success(function(data, status) {
    console.log(data);
}).
error(function(data, status) {
    console.log("Error "+status);
});
控制台中出现以下错误

SyntaxError: missing ; before statement

{"issues":[{"id":139989,"project":{"id":215,"name":"Book Meeting Room

错误状态为
0

与标准JSON不同,响应应包装在函数调用中

而不是:

{"issues":[{"id":139989,"project":{"id":215,"name":"Book Meeting Room...
您应该从服务器上获得以下内容:

handler({"issues":[{"id":139989,"project":{"id":215,"name":"Book Meeting Room"}}]});
我遇到了一个类似的问题,发现用处理程序名传递
回调
jsonp
参数就解决了这个问题。更多信息请参见redmine文档

在jQuery中,这是我的请求:

$.get('someurl', {'callback': 'foo'}, function (data, status, xhr) {
  ... request logic ...
  }, 'jsonp'
);
…这将是带有回调参数的请求:

$http({
    method: 'JSONP', 
    url: url,
    callback: 'something'
}).
success(function(data, status) {
    console.log(data);
}).
error(function(data, status) {
    console.log("Error "+status);
});

这可能不会帮助您解决身份验证难题,但有望帮助您克服此错误。

您在Redmine日志中有哪些内容?找到包含您的请求的日志并发布。@gotva我现在收到一个新错误。我现在将修改代码。@govta我现在正在用AngularJS进行编码。很难说问题出在哪里。。。我认为你应该(当然如果可能的话)在开发模式下启动你的Redmine(这将更容易调试应用程序),并找出异常产生的地方。如果有一个堆栈-张贴它以及。