[英]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.