IE9 JSON 데이터 "이 파일을 열거나 저장하시겠습니까?"
IE9에서 jQuery 어플리케이션 테스트를 시작했습니다.문제가 좀 생겼나 보네JSON 데이터를 Javascript 메서드로 되돌리면 항상 "Do you want to open or save this file?"이라는 프롬프트가 표시되고 다음 3개의 버튼이 표시됩니다.열기, 저장 및 취소.물론 javascript는 JSON 오브젝트에 설정된 값에 따라 액션을 취하고 있지만 IE9이 스크립트에 넘기지 않기 때문에 그 이후로는 후속 액션을 실행할 수 없습니다.
이 문제에 직면한 다른 사람은요?여기 스냅샷이 있습니다.
ASP.net MVC를 사용하여 이 문제를 해결하려는 사용자가 있다면 MVC 프레임워크에 내장된 다음 방법을 사용했습니다.JsonResult의 콘텐츠 유형과 인코딩을 업데이트하기만 하면 됩니다.
public ActionResult Index(int id)
{
// Fetch some data
var someData = GetSomeData();
// Return and update content type and encoding
return Json(someData, "text/html", System.Text.Encoding.UTF8,
JsonRequestBehavior.AllowGet);
}
이것으로 문제가 해결되었습니다!
(이 질문에 대한 답변은 원래 게시되었습니다.)
MVC를 사용하는 경우 이를 처리하는 한 가지 방법은 다음과 같이 Json(객체) 메서드를 덮어쓰기(숨김)하는 기본 컨트롤러를 구현하는 것입니다.
public class ExtendedController : Controller
{
protected new JsonResult Json(object data)
{
if (!Request.AcceptTypes.Contains("application/json"))
return base.Json(data, "text/plain");
else
return base.Json(data);
}
}
이제 모든 컨트롤러가 Extended Controller를 상속하여return Json(model);
...
- 올바르게 재생되는 브라우저(<=IE9! 아님)의 응답 콘텐츠 유형을 변경하지 마십시오.
- 사용하는 것을 잊지 않고
Json(data, "text/plain")
다양한 Ajax 액션 방법으로
이는 jQuery File Upload에 의해 작성된 것과 같이 IE8 및 IE9에서 "Open or Save" 메시지가 표시되는 json 요청과 함께 작동합니다.
어제도 (비동기적으로 업로드된 파일의) URL 목록을 반환한 WebAPI에서 이 문제에 직면했습니다.
컨텐츠 유형을 기본 "application/json; charset=" 대신 "text/multiple"로 설정하십시오.UTF-8" WebAPI 서비스.JSON 문자열로 응답을 받고 $.parseJ를 사용했습니다.SON을 JSON 개체로 변환합니다.
public async Task<HttpResponseMessage> Upload()
{
// ...
var response = Request.CreateResponse(HttpStatusCode.OK, files);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
// result is an iframe's body content that received response.
$.each($.parseJSON(result.html()), function (i, item)
{
console.log(item.Url);
});
내 경우 콘텐츠는응답 헤더에 "application/json; charset="을 입력합니다.UTF-8", IE 9에 프롬프트가 표시됩니다.그러나 "text/charset"로 변경되면 프롬프트가 표시되지 않지만, 모든 수달 브라우저는 "application/json; charset="에 문제가 없습니다.UTF-8인치
사실, 당신이 옳았어요 @ Eric Law.Json 결과에서 콘텐츠 유형을 설정한 후 작동했습니다.다음 행을 추가해야 했습니다.
result.ContentEncoding = System.Text.Encoding.UTF8;
result.ContentType = "application/json; charset=UTF-8
언급URL : https://stackoverflow.com/questions/5388893/ie9-json-data-do-you-want-to-open-or-save-this-file
'programing' 카테고리의 다른 글
효소는 onChange 이벤트를 시뮬레이트합니다. (0) | 2023.03.03 |
---|---|
angularjs의 다른 모듈에 정의된 공장 출하시 접근 (0) | 2023.03.03 |
각도 재료 레이아웃 - 창을 채우도록 확장 (0) | 2023.03.03 |
리액트 앱에서 CSS 모듈을 사용하여 글로벌 스타일을 적용하는 방법은 무엇입니까? (0) | 2023.03.03 |
어떻게 하면 php의 JSON 응답 내의 문자열 안에 큰따옴표를 넣을 수 있을까요? (0) | 2023.03.03 |