亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

基于Jquery插件實現跨域異步上傳文件功能

2019-11-20 10:12:20
字體:
來源:轉載
供稿:網友

先說明白

這個跨域異步上傳功能我們借助了Jquery.form插件,它在異步表單方面很有成效,而跨域我們會在HTTP響應頭上添加access-control-allow-method,當然這個頭標記只有IE10,火狐和谷歌上支持,對于IE10以下的瀏覽器來說,我們就不能用這種方式了,我們需要換個思路去干這事,讓服務端去重寫向我們的客戶端,由客戶端(與文件上傳頁面在同域下)來返回相關數據即可。

再做事

1 Jquery.form的使用

<form method="post" action="http://127.0.0.1:801/Home/UploadResult" enctype="multipart/form-data" id="form1"> <input name="qdctvfile" id="qdctvfile11" type="file" onchange="eventStart()"></form><script type="text/javascript"> $("#form1").ajaxForm({  beforeSerialize: function () {   var filepath = $("#qdctvfile11").val()   var extStart = filepath.lastIndexOf(".");   var ext = filepath.substring(extStart, filepath.length).toUpperCase();   if (ext != ".PNG" && ext != ".JPG") {    alert("圖片僅支持png,jpg格式");    $("#qdctvfile11").val("");    return false;   }  },  success: function (data) {   alert(data);  } }); function eventStart(obj) {  $("#form1").submit(); }

注意,代碼中的eventStart方法是指在選擇文件后,自動提交表單,而ajaxForm表示提交表單為異常方式,success回調方法是指異步返回表單地址的返回值。

2 跨域的初步實現

解決域訪問,我們可以在服務端的響應頭上添加Access-Control-Allow-Origin和Access-Control-Allow-Methods兩個特性即可,這些特性在IE10以下的瀏覽器不被支持,很是郁悶。

 /// <summary> /// MVC模式下跨域訪問 /// </summary> public class MvcCorsAttribute : ActionFilterAttribute {  public override void OnActionExecuting(ActionExecutingContext filterContext)  {   Dictionary<string, string> headers = new Dictionary<string, string>();   headers.Add("Access-Control-Allow-Origin", "*");   headers.Add("Access-Control-Allow-Methods", "*");   foreach (var item in headers.Keys)   {    filterContext.RequestContext.HttpContext.Response.Headers.Add(item, headers[item]);   }   base.OnActionExecuting(filterContext);  } }

注意,在生產環境下,我們的Access-Control-Allow-Origin應該是指定合法的域名的,*表示對所以網站都開放訪問,這是危險的。

3 解決IE10以下不能跨域的問題

對于IE瀏覽器確實沒法說了,雖然很喜歡微軟的東西,但對于IE來說,我只能是NO,我真不想過多的去談論它,先看看IE實現跨域上傳的解決思想:由客戶端不直接返回數據,而是重寫向到客戶端的callback地址,由callback像ajaxForm方法返回最終的數據,這樣就解決了直接的跨域問題了。

  /// <summary>  /// 第三方的服務端  /// </summary>  /// <param name="name"></param>  /// <returns></returns>  [HttpPost]  public ActionResult UploadResult()  {   string data = "{'code':'OK','thumpImgUrl':'http://127.0.0.1/images/1.jpg'}";   return Redirect("http://localhost:9497/Home/UploadCallback?data=" + data);  }  /// <summary>  /// 可能是服務端來調用它  /// </summary>  /// <returns></returns>  public ActionResult UploadCallback(string data)  {   return Content(data);  }

有些時候,我們在想一個問題的解決方法時,如果一條路走不通過,可以換換思路,也許會有意外的收獲!

有人問,這塊使用POST方式在服務端與客戶端進行數據傳遞可以不可以,大叔說:不可以,因為POST在提交到客戶端后,客戶端處理,然后還是把結果返回給服務端,最后服務端再把結果返回給ajaxform,這還是又回到了開始的跨域問題,哈哈!

呵呵,怎么樣,挺有意思的吧!

更多精彩內容,請點擊《jQuery上傳操作匯總》,進行深入學習和研究。

以上就是本文的全部內容,希望對大家的學習有所幫助,感謝各位的閱讀!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影免费观看网站| 清纯唯美日韩制服另类| 国产精品久久91| 亚洲性日韩精品一区二区| 日韩久久免费视频| 国产精品色午夜在线观看| 国产精品第一视频| 精品国产一区二区三区在线观看| 欧美激情第三页| 亚洲韩国青草视频| 亚洲区bt下载| 久久久精品999| 国外成人在线直播| 日本高清视频一区| 国产色婷婷国产综合在线理论片a| 欧美性在线观看| 国产一区二区三区直播精品电影| 96精品久久久久中文字幕| 不卡在线观看电视剧完整版| 亚洲女人被黑人巨大进入al| 96pao国产成视频永久免费| 久久久久北条麻妃免费看| 成人黄色免费网站在线观看| 精品久久久久久亚洲精品| 成人福利在线视频| 草民午夜欧美限制a级福利片| 国产欧美一区二区三区久久人妖| 精品国产91乱高清在线观看| 亚洲国产精品美女| 2019中文字幕在线免费观看| 日韩成人av在线| 亚洲成av人影院在线观看| 亚洲视频专区在线| 欧美激情乱人伦| 亚洲天堂2020| 国产亚洲激情视频在线| 欧美性xxxx极品高清hd直播| 亚洲激情久久久| 国产精品久久久久91| 日韩电影在线观看永久视频免费网站| 久久久999国产| 久久久久久久久久久国产| 久久免费视频网| 精品国产福利在线| 人人爽久久涩噜噜噜网站| 亚洲视频在线观看| 日本精品久久久久影院| 国产美女91呻吟求| 国产va免费精品高清在线观看| 亚洲精品久久久久国产| 国产亚洲欧美aaaa| 欧美不卡视频一区发布| 在线视频欧美日韩精品| 国产精品免费视频xxxx| 国产精品欧美激情| 亚洲成人激情在线| 国产精品一区二区三区毛片淫片| 国产精品国语对白| 欧美激情成人在线视频| 欧美丰满老妇厨房牲生活| 亚洲二区在线播放视频| 精品国产老师黑色丝袜高跟鞋| 91精品久久久久久久久中文字幕| 欧美精品成人在线| 欧美成人在线网站| 日韩经典中文字幕| 亚洲性线免费观看视频成熟| 日韩在线播放视频| 视频在线一区二区| 国产香蕉精品视频一区二区三区| 亚洲mm色国产网站| 456国产精品| 亚洲激情国产精品| 亚洲午夜女主播在线直播| 日韩av影院在线观看| 久久夜色精品亚洲噜噜国产mv| 亚洲精品99久久久久中文字幕| 日本sm极度另类视频| 亚洲国产毛片完整版| 欧美激情综合亚洲一二区| 国产亚洲精品美女久久久| 亚洲欧美中文字幕在线一区| 久久亚洲精品小早川怜子66| 亚洲免费电影一区| 美日韩精品免费观看视频| 91av在线精品| 欧洲日韩成人av| 日韩va亚洲va欧洲va国产| 最新国产精品拍自在线播放| 色av中文字幕一区| 午夜欧美不卡精品aaaaa| 日韩福利视频在线观看| 成人国产精品久久久| 国产suv精品一区二区| 国模精品视频一区二区| 精品国产依人香蕉在线精品| 日韩在线免费视频观看| 日韩一区二区精品视频| 久久久999国产| 久久久久久久久久久久久久久久久久av| 国产一区二区三区久久精品| 福利二区91精品bt7086| 欧美日韩人人澡狠狠躁视频| 中文字幕亚洲色图| 色中色综合影院手机版在线观看| 欧美大全免费观看电视剧大泉洋| 另类视频在线观看| 欧美高清激情视频| 亚洲欧美日韩天堂| 68精品国产免费久久久久久婷婷| 日本欧美黄网站| 国产精品h片在线播放| 欧美夫妻性生活xx| 欧美视频13p| 欧美天堂在线观看| 国产精品一二三视频| 亚洲精品小视频在线观看| 国产精品啪视频| 欧美性极品xxxx娇小| 久久精品影视伊人网| 日韩视频免费中文字幕| 亚洲欧美福利视频| 欧美精品激情blacked18| 亚洲va久久久噜噜噜久久天堂| 国产成人涩涩涩视频在线观看| 亚洲午夜未删减在线观看| 欧美大片免费观看在线观看网站推荐| 中文字幕日韩欧美精品在线观看| 国产精品久久久久久久久久久久久| 欧美成人激情图片网| 国自在线精品视频| 色综合视频一区中文字幕| 自拍偷拍亚洲欧美| 色老头一区二区三区| 91av免费观看91av精品在线| 91国偷自产一区二区三区的观看方式| 九九热最新视频//这里只有精品| 国产精品日日做人人爱| 亚洲欧洲一区二区三区久久| 91福利视频在线观看| 国产精品青草久久久久福利99| 久久免费在线观看| 亚洲欧美日韩中文视频| 亚洲三级免费看| 国产精品一区二区三区久久| zzijzzij亚洲日本成熟少妇| 在线观看亚洲视频| 国产不卡一区二区在线播放| 欧美高清理论片| 日韩av资源在线播放| 国产成人精品在线视频| 中文字幕在线视频日韩| 精品美女国产在线| 国语自产偷拍精品视频偷| 久久精品国产一区| 国产精品视频一区二区高潮| 国产精品一二三视频| www.国产一区| 欧美激情一级精品国产| 亚洲成avwww人| 精品久久久在线观看| 欧美激情一区二区三区高清视频| 日韩精品福利网站| 欧美另类第一页|