相同的JS代码,ie下执行可以调用到后台代码,Firefox却无法调用到后台代码
this.SAVEFILE=function(httpclient,FileName){//时发生交互OPTION值为:SAVEFILEhttpclient.AddFor...
this.SAVEFILE = function (httpclient, FileName) {//时发生交互OPTION值为:SAVEFILE
httpclient.AddForm("FormData", this.WebSendMessage());
httpclient.AddFile("FileData", FileName); //需要上传的文件
this.WebClearMessage();
httpclient.ShowProgressUI = false; //隐藏进度条
console.log(this.WebUrl);
console.log("http://192.168.28.48:8080/meeting/OfficeServer");
console.log("FileName ="+FileName);
//httpclient.Open(this.HttpMethod.Post, this.WebUrl, false)
if (httpclient.Open(this.HttpMethod.Post, "http://192.168.28.138:8080/meeting/OfficeServer", false)) {//这里采用同步方式打开文档。我要返回值
if (!httpclient.Send()) {
if (httpclient.Status == 0) {
if (!httpclient.Send()) {
return false;
}
}
}
httpclient.Clear();
return true;
}
return false;
}
其中httpclient.Open(this.HttpMethod.Post, "http://192.168.28.138:8080/meeting/OfficeServer", false)一行,ie下可以成功调用到officeServer后台代码,在火狐下执行到这一步,后台代码没有被调用,没有后台代码中的输出,请问如何解决? 展开
httpclient.AddForm("FormData", this.WebSendMessage());
httpclient.AddFile("FileData", FileName); //需要上传的文件
this.WebClearMessage();
httpclient.ShowProgressUI = false; //隐藏进度条
console.log(this.WebUrl);
console.log("http://192.168.28.48:8080/meeting/OfficeServer");
console.log("FileName ="+FileName);
//httpclient.Open(this.HttpMethod.Post, this.WebUrl, false)
if (httpclient.Open(this.HttpMethod.Post, "http://192.168.28.138:8080/meeting/OfficeServer", false)) {//这里采用同步方式打开文档。我要返回值
if (!httpclient.Send()) {
if (httpclient.Status == 0) {
if (!httpclient.Send()) {
return false;
}
}
}
httpclient.Clear();
return true;
}
return false;
}
其中httpclient.Open(this.HttpMethod.Post, "http://192.168.28.138:8080/meeting/OfficeServer", false)一行,ie下可以成功调用到officeServer后台代码,在火狐下执行到这一步,后台代码没有被调用,没有后台代码中的输出,请问如何解决? 展开
展开全部
导致这个问题原因有且只有一个,在火狐浏览器下,通过ajax方式进行跨域访问是被定义为不安全和恶意行为,默认是被阻止的。
故而当前源码中的请求无法执行。
故而当前源码中的请求无法执行。
更多追问追答
追问
可是如果我想实现在火狐下发送这个请求的这个功能,能通过什么方法实现呢?
追答
目前要想在firefox下绕开这个限制有且只有一个办法就是利用插件,最常见的就是flash插件,因为插件的权限不是继承于浏览器的,可以更高。不过实现起来的技术成本比较高,比如文件上传很多就是基于flash实现,主要也是利用其插件的权限绕开浏览器的权限限制。
其实还有一个实现思路,你这个接口一看就是一个webservice,你不如把交互的过程放到java(随便哪种当前正在使用的开发语言都可以)代码中,起到一个代理透传的效果,再进行本地调用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询