@@ -58,7 +58,7 @@ document.addEventListener('DOMContentLoaded', () => {
5858 . then ( users => render ( 'sjis-data-fetch' , createTable ( users ) ) )
5959 . catch ( error => renderError ( 'sjis-data-fetch' , error ) ) ;
6060
61- // --- 2. XMLHttpRequest ---
61+ // --- 2. XMLHttpRequest (without overrideMimeType) ---
6262 const xhr = new XMLHttpRequest ( ) ;
6363 xhr . open ( 'GET' , '/api?api=users-sjis' ) ;
6464 xhr . onload = ( ) => {
@@ -76,6 +76,43 @@ document.addEventListener('DOMContentLoaded', () => {
7676 xhr . onerror = ( ) => renderError ( 'sjis-data-xhr' , 'Request error' ) ;
7777 xhr . send ( ) ;
7878
79+ // --- 2b. XMLHttpRequest (without overrideMimeType, no charset header) ---
80+ const xhr2 = new XMLHttpRequest ( ) ;
81+ xhr2 . open ( 'GET' , '/api?api=users-sjis-no-header' ) ;
82+ xhr2 . onload = ( ) => {
83+ if ( xhr2 . status >= 200 && xhr2 . status < 300 ) {
84+ try {
85+ const users = JSON . parse ( xhr2 . responseText ) ;
86+ render ( 'sjis-data-xhr-no-override' , createTable ( users ) ) ;
87+ } catch ( e ) {
88+ renderError ( 'sjis-data-xhr-no-override' , e ) ;
89+ }
90+ } else {
91+ renderError ( 'sjis-data-xhr-no-override' , `Request failed: ${ xhr2 . status } ` ) ;
92+ }
93+ } ;
94+ xhr2 . onerror = ( ) => renderError ( 'sjis-data-xhr-no-override' , 'Request error' ) ;
95+ xhr2 . send ( ) ;
96+
97+ // --- 2c. XMLHttpRequest (with overrideMimeType) ---
98+ const xhr3 = new XMLHttpRequest ( ) ;
99+ xhr3 . open ( 'GET' , '/api?api=users-sjis-no-header' ) ;
100+ xhr3 . overrideMimeType ( 'text/plain; charset=Shift_JIS' ) ;
101+ xhr3 . onload = ( ) => {
102+ if ( xhr3 . status >= 200 && xhr3 . status < 300 ) {
103+ try {
104+ const users = JSON . parse ( xhr3 . responseText ) ;
105+ render ( 'sjis-data-xhr-override' , createTable ( users ) ) ;
106+ } catch ( e ) {
107+ renderError ( 'sjis-data-xhr-override' , e ) ;
108+ }
109+ } else {
110+ renderError ( 'sjis-data-xhr-override' , `Request failed: ${ xhr3 . status } ` ) ;
111+ }
112+ } ;
113+ xhr3 . onerror = ( ) => renderError ( 'sjis-data-xhr-override' , 'Request error' ) ;
114+ xhr3 . send ( ) ;
115+
79116 // --- 3. axios ---
80117 // axiosはグローバルに読み込まれている前提
81118 if ( window . axios ) {
0 commit comments