使用JavaScript请求私有CKAN资源

时间:2017-12-12 17:17:46

标签: javascript ckan

我想从客户端应用程序获取私有CKAN资源(CSV文件),避免使用api密钥,即使用用户名和密码(我已经检查过将api密钥添加为标头,它运行良好)。

我一直在寻找其他类似问题,我发现this(可能是最终答案)或this(使用Python)。对不起,如果这个问题已在别处得到解答。但是,我想尝试避免服务器端解决方案,所以我一直在使用jQuery尝试以下请求:

*其中pattern函数用于替换输入字符串中的参数,login用于存储用户输入的对象。

$.ajax({
    url: pattern('{ckanUrl}/dataset/{pkg}/resource/{resource}/download/{fileName}', dataset),
    type: 'GET',
    username: login.username,
    password: login.password,
    data: {
        //login: login.username,
        //password: login.password,
        cache: true
    },
    dataType: 'text'
})
.done(function(res) {
    console.log('success!!');
})
.fail(function(res) {
    console.log('fail!!');
});

pattern函数接受dataset对象,并将其属性作为参数添加到给定字符串中。 e.g:

var dataset = {
    ckanUrl: 'https://myckan.org',
    pkg: 'packageId',
    resource: 'resourceId',
    fileName: 'myFile.csv'
};

pattern('{ckanUrl}/dataset/{pkg}/resource/{resource}/download/{fileName}', dataset)  
// "https://myckan.org/dataset/packageId/resource/resourceId/download/myFile.csv"

我还尝试在数据属性中添加凭据(上面评论过),但没有成功。在任何情况下我都会遇到404 (Not found)错误。

我错过了什么或CKAN无法做到这一点?

非常感谢!

0 个答案:

没有答案