繁体   English   中英

为FTP服务器执行跨域XMLHTTPREQUEST的语法是什么?

[英]What is the syntax to do a cross-domain XMLHTTPREQUEST to an FTP server?

我有一个webDav CORS插件,我可以在webDav服务器上使用它来POST / PUT / GET / REMOVE / ALLDOCS文件。

我现在想为FTP做同样的事情,但我很难让xmlhttprequest -syntax工作(我只是得到错误0 )。

Mozilla上的这个页面说可以将xmlhttprequests用于文件和ftp,但我找不到任何工作示例或教程。

这就是我正在尝试的,它返回access to restricted URI denied

function reqListener () {
  console.log(this.responseText);
}

var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("GET", "ftp://<username>:<passeword>@mydomain.de/folder/test.txt", true);
oReq.send();

我还尝试了常规的Ajax请求

$.ajax({
  url: "ftp://sharedspace.domain.provider.com/folder/test.txt",
  type: "GET",
  async: true,
  dataType: "text",
  crossdomain : true,
  headers : {
    user: "<username>",
    password: "<password>"
  },
  success: function(e){
    console.log("success");
    console.log(e);
  },
  error: function(e){
    console.log("error");
    console.log(e);
  },
}); 

这也不起作用,返回0状态代码。

问题
FTP执行跨域XMLHTTPREQUEST的正确语法是什么。

谢谢!

编辑:
我发现的唯一有用的链接在这个页面在这里 ,但它只是位和信息,我猜不出他们在一起。

编辑
也许也是有用的链接

虽然Mozilla MDN文档引用了xmlHttpRequest支持文件,但ftp没有主流浏览器做AFAIK。 这是您需要从某种服务器提供Web项目的原因之一,即使它是在同一台机器上,如果您想开发/测试任何xmlHttpRequest的东西,因为file://不起作用。

Microsoft特别声明IE仅支持http / https 它的W3C规范还说该规范仅适用于HTTP / HTTPS,但“除了HTTP和HTTPS之外,某些实现还支持协议,但该规范未涵盖该功能”。

至于CORS,它特别适用于HTTP / HTTPS。 规范就是使用HTTP头。 请在此处查看W3C规范。 FTP没有与HTTP相同类型的标头。

oReq.open("PUT", "ftp://`<username`>:`<password`>@mydomain.de/folder/test.txt", true);

req.setRequestHeader('Content-Type', "text/plain");

req.send("Content of test.txt. This will be in test.txt");

我不完全确定我的时间有点紧,但我认为你可以将文件扩展名更改为php并添加以下代码行:

header('Access-Control-Allow-Origin: *');

然后我会像这样改变mime类型:

header('Content-type: text/plain');

标题“访问控制”将允许脚本和其他文件从任何域访问所请求的文件。 此外,如果您想限制访问,则可以添加一个好的域列表。 标题“内容类型”将允许通过镜像文本文件行为将文件作为纯文本而不是php读取,您的用户永远不会知道

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM