使用的jquery.uploader插件上传文件。这个插件其实是创建了一个iframe来上传文件,在上传完成后刷新该iframe框,通过$('iframe').find('body').text()方式获取返回值。
但是当上传地址跨域的时候,这个iframe刷新的是另一个域的地址,js无法跨域获取该iframe内容。
参考文献
https://www.cnblogs.com/mitang/p/4119598.html
我这里使用的是第二种方法解决的跨域问题,就是在上传成功后页面跳转回当前域,同时将返回值以get的方式带回来。
if ($re) {
$data = json_encode(array('type' => $file_type, 'bytes' => $file_bytes, 'size' => $file_size, 'name' => $file_name));
$return = json_encode(array('state' => true, 'path' => $new_path, 'data' => $data));
header('Location:' . $this->location . '?return=' . $return);
// return array('state' => true, 'path' => $new_path, 'data' => $data);
} else {
$return = json_encode(array('state' => false, 'msg' => '文件移动失败'));
header('Location:http://symanage/index.php/Core/InsideUploadApi/getBack' . '?return=' . $return);
// return array('state' => false, 'msg' => '文件移动失败');
}