prosource

애플리케이션/json을 다운로드하지 않고 단순히 표시하도록 IE를 설득하려면 어떻게 해야 합니까?

probook 2023. 4. 3. 21:35
반응형

애플리케이션/json을 다운로드하지 않고 단순히 표시하도록 IE를 설득하려면 어떻게 해야 합니까?

AJAX를 사용하는 jQuery 앱을 디버깅하는 동안 종종 서비스에서 브라우저로 반환되는 json을 확인해야 합니다.JSON 데이터의 URL을 주소창에 드롭합니다.

이것은 ASPNET을 사용하면 편리합니다.왜냐하면 코딩 에러가 발생했을 경우 브라우저에서 ASPNET 진단이 표시되기 때문입니다.

alt 텍스트

그러나 서버측 코드가 올바르게 동작하고 실제로 JSON을 반환하면 IE에서 다운로드하라는 메시지가 표시되므로 응답을 볼 수 없습니다.

alt 텍스트

즉, IE가 일반 텍스트처럼 표시하지 않도록 할 수 있습니까?

를 Content-Type으로 하면 이 작업을 할 수 .text/plain

그러나 이것은 특별히 ASPNET MVC 앱의 컨텍스트이며, 액션 메서드 중 하나에서 JsonResult를 사용할 때 자동으로 응답을 설정합니다.또, 디버깅을 서포트하기 위해서가 아니라, 적절한 컨텐츠 타입을 유지하고 싶다고 생각하고 있습니다.

답을 찾았어요.

레지스트리를 갱신함으로써 브라우저 창에 애플리케이션/json을 표시하도록 IE8을 설정할 수 있습니다.외부 툴은 필요 없습니다.아직 폭넓게 테스트한 적은 없지만, Vista의 IE8에서는 동작합니다.

이 기능을 사용하려면 레지스트리 업데이트와 관련된 모든 일반적인 경고가 적용됩니다.IE ie ie ie ie ie ie ie다음 다음 다음 .json-ie.reg

Windows Registry Editor Version 5.00
;
; Tell IE to open JSON documents in the browser.  
; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" .
;  

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

런음음 음 、 .reg 、 regregregregregregregregregregregregregregreg.IE 를 재기동합니다.""을 가진 문서를 때 Content-Type: application/json ★★★★★★★★★★★★★★★★★」Content-Type: text/json식입니다.

alt 텍스트

기능 및 작동 이유:

25336920-03F9-11cf-8FD0-00AA00686F13「Browse in 」 「CLSID」. 으로, 이 엔트리는, 의 MIME 그대로 합니다.기본적으로 이 레지스트리 엔트리는 애플리케이션/json의 MIME 유형을 가진 문서의 경우 해당 문서를 그대로 표시하도록 IE에 알립니다.은 this음음음음음jjjjjjjjjjjjjjj/jsonededededededededed를 통해 된 응용 프로그램을 주지 않습니다<script>XHR을 사용하다

는 CLSID Encoding 키와 한 값을 .image/gif,image/jpeg , , , , 입니다.text/html

이 힌트는, 사이트와 Microsoft 의 기사Handling MIME Types in Internet Explorer」로부터 입수했습니다.


FF 서서 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff요.view-source:이렇게URL합니다.

view-source:http://myserver/MyUrl/That/emits/Application/json

이 의사 프로토콜은 Microsoft가 보안상의 이유로 WinXP-sp2를 비활성화할 때까지 IE에서도 지원되었습니다.

저도 비슷한 문제가 있었어요."$"를 사용하고 있었습니다.GetJSON" jQuery와 모든 것이 Firefox와 Chrome에서 완벽하게 작동했습니다.

하지만 IE에서는 작동하지 않았다.그래서 직접 json의 URL에 접속하려고 했는데 IE에서 파일을 다운받고 싶은지 물어봤어요.

여러 번 검색한 결과 결과에 content-type을 가진 헤더가 있어야 한다는 것을 알 수 있었습니다.내 경우 content-type은 다음과 같습니다.

header("Content-type: text/html; charset=iso-8859-1");

그러나 요청을 한 페이지가 이 json을 수신하면 IE에서 SAME CONTENT-TYPE을 지정해야 합니다.내 경우 다음과 같습니다.

$.getJSON (
"<? site_url php echo (" ajax / tipoMenu ")?>"
{contentType: 'text / html; charset = utf-8'},
function (result) {

껴안다

위의 솔루션은 누락되어 있으며, 아래 코드는 모든 상황에서 작동합니다.

Windows Registry Editor Version 5.00
;
; Tell IE to open JSON documents in the browser.  
; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" .
;  

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

json.reg 파일을 저장하고 를 실행하여 레지스트리를 변경합니다.

IE의 JSON MIME 유형 설정을 변경하면 IE가 모든 JSON 응답을 처리하는 방식에 영향을 미칩니다.

mime-type 헤더를 text/html로 변경하면 반환되는 JSON 응답이 JSON이 아닌 일반 텍스트임을 브라우저에 효과적으로 알립니다.

어느 옵션도 바람직하지 않습니다.

대신 위의 Fiddler와 같은 플러그인 또는 도구를 사용하거나 JSON 응답 처리 방법을 매번 선택할 수 있는 다른 네트워크 트래픽인스펙터 프록시를 사용해야 합니다.

IE에서 JSON을 메모장으로 여는 것만으로 문제가 없다면 시스템의 .json 파일용 기본 프로그램을 메모장으로 변경할 수 있습니다.

이렇게 하려면 .json 파일을 만들거나 찾은 후 마우스 오른쪽 버튼을 클릭한 다음 "다음으로 열기" 또는 "기본 프로그램 선택"을 선택합니다.

이 기능은 Internet Explorer를 사용하고 싶지만 IT 회사에서 레지스트리를 편집할 수 없는 경우에 편리합니다.그렇지 않으면 위의 답변을 권장합니다.

JSON Viewer 플러그인과 함께 Fiddler를 사용하여 JSON을 검사합니다.레지스트리를 만지작거리지 않고 IE를 동작시키는 것은 불가능하다고 생각합니다.여기 몇 가지 정보가 있습니다.

FireFox + FireBug는 이 목적에 매우 적합합니다.IE는 지금까지 사용해 본 적이 없는 개발자 툴바가 있기 때문에 피드백을 드릴 수 없습니다.

XMLHttpRequest에서도 같은 문제가 발생했습니다.이 사이트는 Chrome과 FF, 그리고 실제 가동 중인 수십 개의 Internet Explorer 브라우저에서 완벽하게 작동합니다.이 ONE 머신(당사가 데모 머신으로 설정하고 있는 머신)은, 물론, ajax 요구에 대한 json 응답을 보존하도록 요구하기로 결정했습니다.

아래 승인된 regedit 솔루션으로 수정되었습니다.감사해요.

답변은 Fiddler에서 확인할 수 있습니다.http://www.fiddler2.com/fiddler2/

그거 좋은 도구네요!

언급URL : https://stackoverflow.com/questions/2483771/how-can-i-convince-ie-to-simply-display-application-json-rather-than-offer-to-do

반응형