上传文件到文件服务器跨域问题

时间:2021-11-28 04:54:29
//提交添加的模型
$('#fileSubmit').click(function(){
//保存数据并返回模型页面
var catedoryId = $('#type').val();
var img = $('#modelIcon').val();
//上传到文件服务器并取得返回的图片url
$.ajaxSetup({
async:false
});
$.post('http://file.longmap.com/file/upload',{folderUrl:img},function(data){
alert(data.result);  //就是这个请求出现了跨域,不知道如何解决,
img = data.result; //网上的资料很多链接打不开,不知道是不是百度某个服务器挂掉了
})

var name = $('#name').val();
var dataStr = {};
dataStr.catedoryId = catedoryId;
dataStr.img = img;
dataStr.name = name;
//添加模型
$.post('/simulation/model/add',dataStr,function(data){
alert(data.msg);
window.location.href = '/simulation/page/list';
})
})

上面红色部分的请求跨域,这种改如何解决,思路,实例都行,谢谢各位了

15 个解决方案

#1


跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

#2



//提交添加的模型
            $('#fileSubmit').click(function(){
                //保存数据并返回模型页面
                var catedoryId = $('#type').val();
                var img = $('#modelIcon').val();
                //上传到文件服务器并取得返回的图片url
                $.ajaxSetup({
                    async:false
                });
             $.post('http://file.longmap.com/file/upload',{folderUrl:img},function(data){
                    alert(data.result);  //就是这个请求出现了跨域,不知道如何解决,
                    img = data.result;        //网上的资料很多链接打不开,不知道是不是百度某个服务器挂掉了
                })
                var name = $('#name').val();
                var dataStr = {};
                dataStr.catedoryId = catedoryId;
                dataStr.img = img;
                dataStr.name = name;
                //添加模型
                $.post('/simulation/model/add',dataStr,function(data){
                    alert(data.msg);
                    window.location.href = '/simulation/page/list';
                })               
            })
这个可能清晰一点

#3


引用 1 楼 showbo 的回复:
跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?

#4


引用 3 楼 u012514171 的回复:
Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

#5


1.在前台定义一个回调函数,如function jsoncallback(data){
     接收后台传过来的data即可
}
2.使用getJSONP('url?callback=jsoncallback',
               {
                参数...
               }
3.后台定义与之对应的jsoncallback()方法处理业务即可

#6


引用 5 楼 liushaojun1314 的回复:
1.在前台定义一个回调函数,如function jsoncallback(data){
     接收后台传过来的data即可
}
2.使用getJSONP('url?callback=jsoncallback',
               {
                参数...
               }
3.后台定义与之对应的jsoncallback()方法处理业务即可

文字可以,文件不行

#7


引用 4 楼 showbo 的回复:
Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

#8


引用 7 楼 u012514171 的回复:
Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。

#9


引用 8 楼 showbo 的回复:
Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

#10


不允许跨域:
- 同一域名,不同端口
- 同一域名,不同协议
- 域名和域名对应ip
- 主域相同,子域不同
- 同一域名,不同二级域名
- 不同域名

这类问题最好丢给后台, 上传文件到文件服务器跨域问题
百度:跨域 上传文件

#11


引用 10 楼 xianghongai 的回复:
不允许跨域:
- 同一域名,不同端口
- 同一域名,不同协议
- 域名和域名对应ip
- 主域相同,子域不同
- 同一域名,不同二级域名
- 不同域名

这类问题最好丢给后台, 上传文件到文件服务器跨域问题
百度:跨域 上传文件

现在后台正在整,我这边看来是没办法了,不过我还是在继续查找方法,试了不少,都不行。行的只有form表单,但是跳转页面了获取不到返回值。

#13


引用 9 楼 u012514171 的回复:
Quote: 引用 8 楼 showbo 的回复:

Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

还表单传值一样,只是你用的ajax,返回js代码不会执行之类的,服务器该怎么获取就怎么获取

#14


引用 13 楼 showbo 的回复:
Quote: 引用 9 楼 u012514171 的回复:

Quote: 引用 8 楼 showbo 的回复:

Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

还表单传值一样,只是你用的ajax,返回js代码不会执行之类的,服务器该怎么获取就怎么获取[/quote【表情】]
谢谢大佬了,问题最终为后端解决,后端写了个文件中转,我这边没跨域问题了。不过这个问题还会研究的,前端如何解决文件跨域上传我还会继续实现的,打算租个服务器去整。

#15


引用 14 楼 u012514171 的回复:
Quote: 引用 13 楼 showbo 的回复:

Quote: 引用 9 楼 u012514171 的回复:

Quote: 引用 8 楼 showbo 的回复:

Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

还表单传值一样,只是你用的ajax,返回js代码不会执行之类的,服务器该怎么获取就怎么获取[/quote【表情】]
谢谢大佬了,问题最终为后端解决,后端写了个文件中转,我这边没跨域问题了。不过这个问题还会研究的,前端如何解决文件跨域上传我还会继续实现的,打算租个服务器去整。
文件中转?就是他把文件上传的代码和你的文件放到一起,你就用相对路径去访问,这样就不跨域了,是这样吗?

#1


跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

#2



//提交添加的模型
            $('#fileSubmit').click(function(){
                //保存数据并返回模型页面
                var catedoryId = $('#type').val();
                var img = $('#modelIcon').val();
                //上传到文件服务器并取得返回的图片url
                $.ajaxSetup({
                    async:false
                });
             $.post('http://file.longmap.com/file/upload',{folderUrl:img},function(data){
                    alert(data.result);  //就是这个请求出现了跨域,不知道如何解决,
                    img = data.result;        //网上的资料很多链接打不开,不知道是不是百度某个服务器挂掉了
                })
                var name = $('#name').val();
                var dataStr = {};
                dataStr.catedoryId = catedoryId;
                dataStr.img = img;
                dataStr.name = name;
                //添加模型
                $.post('/simulation/model/add',dataStr,function(data){
                    alert(data.msg);
                    window.location.href = '/simulation/page/list';
                })               
            })
这个可能清晰一点

#3


引用 1 楼 showbo 的回复:
跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?

#4


引用 3 楼 u012514171 的回复:
Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

#5


1.在前台定义一个回调函数,如function jsoncallback(data){
     接收后台传过来的data即可
}
2.使用getJSONP('url?callback=jsoncallback',
               {
                参数...
               }
3.后台定义与之对应的jsoncallback()方法处理业务即可

#6


引用 5 楼 liushaojun1314 的回复:
1.在前台定义一个回调函数,如function jsoncallback(data){
     接收后台传过来的data即可
}
2.使用getJSONP('url?callback=jsoncallback',
               {
                参数...
               }
3.后台定义与之对应的jsoncallback()方法处理业务即可

文字可以,文件不行

#7


引用 4 楼 showbo 的回复:
Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

#8


引用 7 楼 u012514171 的回复:
Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。

#9


引用 8 楼 showbo 的回复:
Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

#10


不允许跨域:
- 同一域名,不同端口
- 同一域名,不同协议
- 域名和域名对应ip
- 主域相同,子域不同
- 同一域名,不同二级域名
- 不同域名

这类问题最好丢给后台, 上传文件到文件服务器跨域问题
百度:跨域 上传文件

#11


引用 10 楼 xianghongai 的回复:
不允许跨域:
- 同一域名,不同端口
- 同一域名,不同协议
- 域名和域名对应ip
- 主域相同,子域不同
- 同一域名,不同二级域名
- 不同域名

这类问题最好丢给后台, 上传文件到文件服务器跨域问题
百度:跨域 上传文件

现在后台正在整,我这边看来是没办法了,不过我还是在继续查找方法,试了不少,都不行。行的只有form表单,但是跳转页面了获取不到返回值。

#12


#13


引用 9 楼 u012514171 的回复:
Quote: 引用 8 楼 showbo 的回复:

Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

还表单传值一样,只是你用的ajax,返回js代码不会执行之类的,服务器该怎么获取就怎么获取

#14


引用 13 楼 showbo 的回复:
Quote: 引用 9 楼 u012514171 的回复:

Quote: 引用 8 楼 showbo 的回复:

Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

还表单传值一样,只是你用的ajax,返回js代码不会执行之类的,服务器该怎么获取就怎么获取[/quote【表情】]
谢谢大佬了,问题最终为后端解决,后端写了个文件中转,我这边没跨域问题了。不过这个问题还会研究的,前端如何解决文件跨域上传我还会继续实现的,打算租个服务器去整。

#15


引用 14 楼 u012514171 的回复:
Quote: 引用 13 楼 showbo 的回复:

Quote: 引用 9 楼 u012514171 的回复:

Quote: 引用 8 楼 showbo 的回复:

Quote: 引用 7 楼 u012514171 的回复:

Quote: 引用 4 楼 showbo 的回复:

Quote: 引用 3 楼 u012514171 的回复:

Quote: 引用 1 楼 showbo 的回复:

跨域没搞,除非http://file.longmap.com/file/upload是你的或者设置过 Access-Control-Allow-Origin响应头允许你跨域访问

而且注意设置那个响应头的话IE用的是 XDomainRequest对象,不是XMLHttpRequest对象

这个文件服务器http://file.longmap.com/file/upload是我们的,是二级域名,是后端的人在管理,我这边只需要设置响应头就可以了吗/?还有就是解决这个问题主要是后端解决还是前端解决,如果是前端解决的话前端除了需要设置相应头外还需要做哪些工作“?
你不兼容ie就前端,你要兼容ie最好是通过服务器端来处理。

前端兼容ie不能用jquery,jquery不支持XDomainRequest的跨域兼容,需要自己写代码来兼容,目标网站设置那个请求头为*就行,或者你允许的域名

通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

设置域名头不行,文字可以,文件不行。现在正在看ajaxfileupload

ajax原本就传递不了文件,要结合html5的FormData才行。
formData好像传的是二进制,需要后台解析二进制文件吗?我使用了formData还是提示有跨域问题,但是在network里面的response里面看到请求成功了,但是result里面没有返回值。。

还表单传值一样,只是你用的ajax,返回js代码不会执行之类的,服务器该怎么获取就怎么获取[/quote【表情】]
谢谢大佬了,问题最终为后端解决,后端写了个文件中转,我这边没跨域问题了。不过这个问题还会研究的,前端如何解决文件跨域上传我还会继续实现的,打算租个服务器去整。
文件中转?就是他把文件上传的代码和你的文件放到一起,你就用相对路径去访问,这样就不跨域了,是这样吗?