跨域上传图片需要在服务器端进行配置。以下是具体步骤:
设置服务器支持跨域请求:
在服务器端添加响应头,允许跨域请求。
例如,在php上可以添加下面的代码:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Max-Age: 86400");
其中,header("Access-Control-Allow-Origin: *")
允许任意来源的跨域请求。如果需要限制跨域请求的来源,可以把“*”改为相应的域名。
设置表单的enctype为multipart/form-data:
在前端页面里,上传图片的表单需要设置enctype属性为multipart/form-data。例如:
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" name="file" id="file-input">
</form>
使用Ajax上传图片:
在前端页面里,使用Ajax上传图片。例如:
var formData = new FormData($("#uploadForm")[0]);
$.ajax({
url: "http://example.com/upload.php",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(result) {
console.log(result);
},
error: function(error) {
console.log(error);
}
});
其中,contentType: false
和processData: false
表示不要对数据进行处理和格式化。
在服务器端,可以通过$_FILES来访问上传的文件信息。
实现以上步骤后,就可以实现跨域上传图片了。