如何向webDav存储发出Ajax / Cors请求?

时间:2013-01-14 11:12:34

标签: javascript jquery ajax xmlhttprequest webdav

我正在尝试编写一个javascript / jquery插件来访问仅使用JSON数据的webDav存储,并且正在努力让它工作。

webDav将是一个远程存储,因此我需要发送跨域ajax请求,并传递身份验证数据。

我尝试了各种版本,但是我总是在preflight身份验证失败,而我可以直接在浏览器中输入URL(并提供登录凭据)时正确访问该文件。

这就是我的尝试:

$.ajax({
  url: priv.url + '/' + priv.user + '/' +
    priv.foldertree + '/' + docid,
  type: "GET",
  async: true,
  crossdomain : true,
  headers : {
    Authorization: 'Basic ' + Base64.encode(
      priv.user + ':' + priv.password
      )
  },
  success: function (content) {
    console.log( content );
  }
});

我还没有运气设置以下内容:

 xhrFields: {withCredentials: 'true'}
 contentType: 'text/plain'

或:

 datatype: "jsonp"

或:

 username: priv.user
 password: priv.password

或:

 beforeSend: function (xhr) {
  xhr.setRequestHeader ('Authorization', 
      "Basic" + Base64.encode( priv.user + ':' + priv.password )
    );
  }

但我的所有内容都是来自401请求的远程服务器的authorization failed preflight options响应。

问题:
我无法访问远程服务器,但由于它是远程WebDav存储即服务,因此应该可以访问我计划存储在那里的文件。有人可以给我一个关于如何正确地发出请求以获取我的JSON数据的指针(我还需要发布,预先发布,删除,但首先要做的事情......)?

谢谢!

1 个答案:

答案 0 :(得分:1)

想出来。提供商设置不允许使用webDAV / Ajax /预检/身份验证。

交换提供商(Otixo) - 现在可行。