js XMLHttpRequest XMLHTTP 請求中URL包含中文時請求失敗解決方法
阿新 • • 發佈:2019-01-24
寫 XMLHttpRequest XMLHTTP 請求時,遇到箇中文URL,結果請求失敗,找了好多資料,說什麼用 escape(URL)還要兩次,完全無用,更錯,仔細看看不使用escape時伺服器返回了,
HTTP 錯誤 404.11 - Not Found
請求篩選模組被配置為拒絕包含雙重轉義序列的請求。
這個錯誤,用了 escape 後直接就報非法URL了。
解讀了一下伺服器返回的這個錯誤資訊,試著解決了一下,居然就成功了。程式碼如下
function createXHR(){ var xhr = null; try { // Firefox, Opera 8.0+, Safari,IE7+ xhr = new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xhr = null; } } } return xhr; }
var url='./upload/2018-03/房屋 11KM+490M.JPG';
var xhr = createXHR();
xhr.open('get',url, true);
xhr.send(null);
解決方法很簡單,根本不需要什麼escape:
IIS7裡面,選擇你的站點,雙擊“請求篩選”
後“編輯功能設定”,勾選“允許雙重轉義”儲存,重啟站點即可!