Browse by Tags

實例分析-彈出式視窗被瀏覽器封鎖
昨天剛在公司解完案例,今天又在日常生活遇到實例,老天爺這暗示明顯無比,趕緊來篇筆記,以防出門雷劈! 最近迷上蝦皮拍賣。能跟 LINE 一樣跟賣家溝通超方便,尤其問完問題馬上接到賣家的實體照片真令人感動,不用出門與人面對面又保有臨櫃交談的即時性,真是阿宅的救星。遇到一個賣家很妙,凌晨四點多發訊息通知我補寄商品今天會到(不知對方有沒有早起的拎杯秒回「謝謝」嚇到? XD)。 在中華郵政網站輸入包裹號碼,按下「運輸資料」查詢鈕… 登楞! JavaScript 試圖彈出視窗被 Chrome 瀏覽器封鎖了!...
Posted 16 June 2017 11:01 AMJeffrey | with no comments 6,624
Filed under: ,
漫談 JSONP 的 XSS 攻擊風險
JSONP 是解決跨網域 JavaScript 呼叫的古老方法,簡單有效又不挑瀏覽器,至今仍是我常用的兵器之一。最近在想一個問題,JSONP 呼叫時由客戶端指定 Callback 函式名稱,是一個可以注入惡意程式碼的管道,有否存在 XSS 攻擊的風險?需不需要積極防護? 經過嘗試,發現要透過 JSONP 發動攻擊是可能的,但前題是開發者犯了某些低級錯誤。 使用以下網頁示範: <%@ Page Language="C#" %> < script runat ="server"...
Posted 24 November 2016 07:43 PMJeffrey | with no comments 6,534
Filed under: ,
【茶包筆記】jQuery AJAX呼叫在IE有問題
同事報案,某網頁使用jQuery.ajax()發出四個OData查詢,在Chrome執行正常,在IE時兩個AJAX呼叫正常,有兩個查不到資料。使用F12觀察,發現有問題的AJAX呼叫URL參數包含中文但未使用encodeURIComponent()編碼,Chrome正確地自動做了轉換,IE也自動做了轉換,但轉換結果出現亂碼。 URL未用encodeURIComponent()編碼要承擔敗戰責任無庸置疑,但jQuery.ajax()在不同瀏覽器結果不同這點挺有趣,值得調查,弄了精簡範例驗證這點: <...
Posted 04 July 2016 07:32 AMJeffrey | with no comments 5,277
Filed under: ,
【茶包射手日記】SharePoint導致ASP.NET PageMethod失效
接獲報案,某 ASP.NET PageMethod 程式部署至正式主機失效,以jQuery送出POST Request,未傳回JSON結果而是傳回完整網頁,如同未設[WebMethod]屬性一般。 經過對照測試,鎖定問題只有在ASP.NET網站跟SharePoint 2007並存於同一IIS站台時發生,只要脫離Sharepoint魔掌就一切如常。 爬文找到有人提及需確認web.config已加入ScriptModule,PageMethod才能正常運作: <httpModules>  ...
Posted 19 August 2014 08:40 PMJeffrey | with no comments 3,346
Filed under: , ,
【茶包射手日記】RadAsyncUpload上傳檔案跳出網頁登入對話框
接獲報案,某專案使用Telerik RadControl的 RadAsyncUpload 元件,在選取檔案後隨即出現網頁登入對話框,輸入正確密碼後,元件的上傳進度Icon持續閃黃燈,若按上傳鈕甚至在某些機器上導致IE Crash。 據說問題只發生在某些User的機器上,但數量不少,偏偏資訊部門的機器都無法重現問題,最後總算追查到一位行政同仁的PC曾有相同問題,如獲至寶! 重演一次操作,幸運地狀況還在,射茶包時,重現問題是成功的一半! 實際觀察問題,推斷是選取檔案後網頁抛出某個需求,導致IIS再次要求認證身分...
Posted 19 July 2014 08:57 AMJeffrey | 2 comment(s) 6,459
Filed under:
再談AJAX呼叫的同步化
接獲報案: 某網頁透過AJAX新增資料,接著以AJAX方式取回資料清單,卻不見剛才新增的項目,重新整理網頁則正常。 經過一番檢測,確認與AJAX的非同步特性有關, 循序執行AJAX呼叫 的做法先前曾討論過,但這回我們改從問題剖析的角度再切入一次。 試著用以下範例重現問題。假設有一個後端ASP.NET程式如下,傳入參數mode=add時可新增字串元素,mode=clear時清除所有資料,否則傳回字串陣列內容。為求簡化,此處用Session儲存資料取代原本的DB作業。 <%@ Page Language...
Posted 17 October 2013 05:14 PMJeffrey | 9 comment(s) 30,089
Filed under: ,
CODE-以jQuery循序執行AJAX呼叫,並依結果決定是否繼續
很繞口的標題,不過就是我這次挑戰的需求。 用Google Map API轉換地址 時,曾示範過利用$.when().then()等待所有$.ajax()呼叫都完成後才執行顯示地圖的jQuery寫法,但這次的情境有點不同。 每次處理1到多筆AJAX呼叫(透過$.post()) 多筆AJAX呼叫需依序執行,第1筆執行完畢時才執行第2筆 當某一筆AJAX呼叫傳回特定結果時,代表出現狀況,停止後續AJAX動作 jQuery的$.ajax()自1.5版起改為回傳Promise物件(CommonJS提議的 設計模式...
Posted 05 September 2012 03:53 PMJeffrey | 7 comment(s) 19,446
Filed under: ,
打破沙鍋-AJAX POST比GET效率差?
故事要從點部落看到的 一篇文章 說起,該文章引薦了另一篇文章: 如何有效的提升網站的效能 - 12項建議 ,提出不少網頁前端設計上的效能提示,不過其中第8點: 在使用Ajax時,請盡量以GET的方式進行請求,以POST的方式將造成雙倍的要求次數 卻讓人有些疑惑,依我對HTTP GET與POST運作原理的理解,無法解釋Request數變兩倍的理由。於是在噗浪上 討論了一番 ,發現許多人跟我有相同的疑問,直到JavaScript神人-費拉諾蘭大公現身,指引眾人一條明路,在Yahoo Developer...
Posted 10 June 2012 07:18 AMJeffrey | 4 comment(s) 24,008
Filed under: ,
Telerik RadGrid AJAX更新範例
RadControls for ASP.NET AJAX 是一套挺優秀的ASP.NET元件庫,包辦了開發ASP.NET專案時需要用到的大小控制項(如: Grid、日期選擇器、數字輸入欄位、頁籤... 等等),手上有幾個專案裡就是利用RadGrid的 Client-Side Data-Binding 實現AJAX式的換頁及重排效果,但中年人記憶消失之快已到了令人心驚的地步,每次要寫類似應用都要花上大半天回頭從舊程式找範例(要命的是連在哪個專案寫過都要想半天),於是催生了這篇" 銀杏文 "...
Posted 01 December 2011 06:07 AMJeffrey | 8 comment(s) 24,929
Filed under: , ,
AJAX動態內容支援回上頁-HTML5篇
昨天提到 在AJAX情境支援回上頁 的做法,Ammon馬上補充重要資訊(再次感謝!!) --- 針對AJAX模式下記錄瀏覽歷程的需求,HTML5 history物件已增加了新功能。(詳情可參考 MDN文件 ) jQuery BBQ透過pushState(), getState()及hashchage事件實現AJAX變動歷程的記錄,而HTML5則是在既有history物件上增加了pushState()、replaceState()方法、state屬性,並在window物件新增onpopstate事件...
讓AJAX動態內容支援瀏覽器回上頁功能
隨著AJAX動態更新技術的普及,手邊專案有愈來愈多網頁開始實現"無PostBack"的設計風格,透過jQuery $.post(), $.get()與ASP.NET程式溝通,執行查詢、更新作業並取得結果,再動態改變HTML DOM回應使用者。(註: 對ASP.NET開發者來說,UpdatePanel是另一個無痛實現AJAX化的選項,但有些 副作用 ) 由使用者的回饋來看,減少網頁PostBack與網頁重新導向次數,確實大幅提高操作回應速度,提供更好的操作體驗,不過倒有一個常被垢病之處...
Posted 22 September 2011 07:49 AMJeffrey | 4 comment(s) 24,639
Filed under: ,
【茶包射手日記】Native XMLHttpRequest
使用者回報某段使用XHR(XMLHttpRequest)的Script在他的IE8上執行出現錯誤。 追查發現,問題出在Script中使用了xhr.timeout,而系統回報不支援,求證發現timeout屬性是IE8主打的 XHR強化項目 ,而瀏覽器版本的確是IE8無誤。 進一步檢查,更大吃一驚! 程式碼中有段制式的跨瀏覽器XHR物件產生寫法,在遇到 IE6 某些 早該消失在地球上 的舊版瀏覽器時,可使用XMLHTTP ActiveX物件取代原生XHR: var xhr = (window.XMLHttpRequset...
Posted 26 August 2011 06:07 AMJeffrey | with no comments 8,094
Filed under: ,
IE MaxConnectionsPerServer參數效果實測
最近在搞用Client Script模擬壓力測試的把戲,順道對IE的MaxConnectionsPerServer屬性做了實測。 IE6/7預設會限制從同一台網站伺服器下載檔案最多只能同時用2條連線,換句話說,若一個網頁上有12個不同的<img>圖檔來自同一台網站伺服器,IE6/7並不是一口氣發出12個HTTP GET Request取回圖檔,而是讓12個Request排隊輪流共用兩條連線下載檔案。IE8起,同時連線數的上限才被提高到6條。(事實上,針對HTTP 1.0或1.1、寬頻或撥接環境...
Posted 24 August 2011 10:44 PMJeffrey | 11 comment(s) 21,130
Filed under: , ,
使用XHR下載BIG5編碼內容
為一個使用BIG5編碼的網站寫一小段AJAX Script滿足需求,結果踢到了鐵板。 使用$.get()或$.post()取得後端網頁程式執行內容是很普遍的技巧,但若網頁採BIG5編碼而非UTF-8時,會衍生額外議題。 以下面的網頁為例,我們在按鈕click()事件中使用$.get(location.href)取回網頁本身內容再alert出來,但有個重點--網頁記得要存成為BIG5編碼。(不知如何指定檔案編碼的朋友,可參考文末附註) <! DOCTYPE html > < html...
Posted 18 August 2011 07:36 AMJeffrey | with no comments 10,537
Filed under: , ,
透過Javascript觸發檔案下載
使用者在點擊網頁元素後啟動檔案下載的方法有好幾種,我做了一個ASP.NET網頁一次測試window.open(), location.href, 隱藏iframe等三種方法,同時還加個Checkbox以模擬下載失敗顯示錯誤訊息網頁的情境。 <%@ Page Language="C#" %> <! DOCTYPE html > < script runat ="server" > void Page_Load( object...
Posted 12 August 2011 06:54 PMJeffrey | 5 comment(s) 57,108
Filed under: ,
更多文章 下一頁 »

搜尋

Go

<November 2017>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication