1. 調用上傳的html頁面所在域名是 www.abc.com ,添加document.domain
<script>
document.domain = "abc.com";
</script>
AjaxUpload 設置
$(function () {
// 創建一個上傳參數
var uploadOption0 =
{
// 提交目標
action: "http://upload.abc.com/FileUpload/Upload",
// input file id,name
id: "file_0",
name: "file_0",
responseType: false, // "json",
// 自動提交
autoSubmit: true,
// 選擇文件之后…
onChange: function (file, extension) {
if (!new RegExp(/(jpg)|(jpeg)|(bmp)|(gif)|(png)/i).test(extension)) {
layer.msg("只限上傳圖片文件,請重新選擇!");
}
},
// 開始上傳文件
onSubmit: function (file, extension) {
layer.msg("正在上傳文件:" + file + "...");
},
// 上傳完成之后
onComplete: function (file, responseText) {
var response = eval("(" + responseText + ")");
layer.msg(response.message);
if (response.success) {
$("#file0_name").val(response.data.name);
$("#file0_upload_name").val(response.data.upload_name);
$("#file0_extension").val(response.data.extension);
$("#file0_size").val(response.data.size);
$("#file0_url").val(response.data.url);
$("#file0_download_url").val(response.data.download_url);
$("#file0_msg").html("<span style='color:#008000;'>已上傳</span>");
$("#file0_msg").removeClass("error");
}
}
}
// 初始化圖片上傳框
var oAjaxUpload0 = new AjaxUpload('#btnupload0', uploadOption0);
})
2. 上傳服務端 FileUpload/Upload 在 upload.abc.com
public ActionResult Upload()
{
string message = "上傳成功,文件大小:" + size;
json = new JsonResult
{
Data = new
{
success = true,
message = message,
data = new
{
name = name,
upload_name = upload_name,
extension = extension,
size = size,
url = url,
download_url = file_downloadpath + url
}
}
};
return CrossDomainContent(json);
}
private ContentResult CrossDomainContent(JsonResult json)
{
StringBuilder sb = new StringBuilder();
sb.Append("<script> document.domain = 'abc.com'; </script>");
sb.Append(JsonConvert.SerializeObject(json.Data));
return Content(sb.ToString());
}
3. 添加了document.domain 的html頁面會影響到其他iframe頁面,比如某些js日期控件(如 My97DatePicker/WdatePicker.js 也要加上document.domain,相應的引用 My97DatePicker/WdatePicker.js 的頁面也要加上 document.domain)
