• <legend id='XWbjF'><style id='XWbjF'><dir id='XWbjF'><q id='XWbjF'></q></dir></style></legend>

    <small id='XWbjF'></small><noframes id='XWbjF'>

    • <bdo id='XWbjF'></bdo><ul id='XWbjF'></ul>

      <i id='XWbjF'><tr id='XWbjF'><dt id='XWbjF'><q id='XWbjF'><span id='XWbjF'><b id='XWbjF'><form id='XWbjF'><ins id='XWbjF'></ins><ul id='XWbjF'></ul><sub id='XWbjF'></sub></form><legend id='XWbjF'></legend><bdo id='XWbjF'><pre id='XWbjF'><center id='XWbjF'></center></pre></bdo></b><th id='XWbjF'></th></span></q></dt></tr></i><div id='XWbjF'><tfoot id='XWbjF'></tfoot><dl id='XWbjF'><fieldset id='XWbjF'></fieldset></dl></div>

        <tfoot id='XWbjF'></tfoot>

        浏览器对 json ajax 响应的 Content-Type 标头有什么要求?

        What do browsers want for the Content-Type header on json ajax responses?(浏览器对 json ajax 响应的 Content-Type 标头有什么要求?)

            <legend id='e17O0'><style id='e17O0'><dir id='e17O0'><q id='e17O0'></q></dir></style></legend>
              <tbody id='e17O0'></tbody>

              • <small id='e17O0'></small><noframes id='e17O0'>

                  <bdo id='e17O0'></bdo><ul id='e17O0'></ul>
                • <i id='e17O0'><tr id='e17O0'><dt id='e17O0'><q id='e17O0'><span id='e17O0'><b id='e17O0'><form id='e17O0'><ins id='e17O0'></ins><ul id='e17O0'></ul><sub id='e17O0'></sub></form><legend id='e17O0'></legend><bdo id='e17O0'><pre id='e17O0'><center id='e17O0'></center></pre></bdo></b><th id='e17O0'></th></span></q></dt></tr></i><div id='e17O0'><tfoot id='e17O0'></tfoot><dl id='e17O0'><fieldset id='e17O0'></fieldset></dl></div>
                  <tfoot id='e17O0'></tfoot>
                • 本文介绍了浏览器对 json ajax 响应的 Content-Type 标头有什么要求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我正在返回一些需要由 javascript 处理的 json 作为对 XMLHTTPRequest 的响应.

                  如果我将响应的内容类型设置为text/plain",除 Chrome 之外的所有浏览器都会接受它并将其传递给我的 JS,没有问题.但是,Chrome 会将响应包装在

                  在将其传递给我的 javascript 之前.

                  如果我将响应的内容类型设置为正确"应用程序/json",所有浏览器,但 Firefox 将接受它并将其传递给我的 JS,没有问题.但是,Firefox 会要求将响应保存或打开为文件.

                  什么是正确的跨浏览器内容类型?

                  解决方案

                  您可以通过使用jQuery funcion parseJSON - http://api.jquery.com/jQuery.parseJSON/

                  您传递给函数的参数是 JSON 对象字符串,您从响应数据中提取:

                  function AjaxResponse (data) {//AJAX post 回调var jsonResult = $.parseJSON(data.substring(data.indexOf("{"), data.lastIndexOf("}") + 1));}

                  在 FF 和 IE8 中针对以下简单 JSON 结果进行了测试(除了 Chrome 解决了哪个问题),对于其他浏览器和更复杂的响应,无法保证...

                  <小时>

                  注意:我认为这种情况下的内容类型是 text/plain 或 text/html - 我使用了以下 ASP.Net MVC 函数来返回结果

                  ContentResult System.Web.Mvc.Controller.Content(string content);

                  我返回 JSON 对象的位置,如

                  System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer= 新 System.Web.Script.Serialization.JavaScriptSerializer();var jsonResponse = jsonSerializer.Serialize(新 { IArticleMediaId = 0, ImageUrl = Url.Content(fullImgPath)});返回内容(jsonResponse);

                  I am returning some json which needs to be handled by javascript as the response to an XMLHTTPRequest.

                  If I set the response's content type to "text/plain", all browsers but Chrome will accept it and pass it to my JS with no problem. However, Chrome will wrap the response in

                  <pre style="word-wrap: break-word; white-space: pre-wrap;"> 
                  

                  before passing it to my javascript.

                  If I set the response's content type to the "proper" "application/json" all browsers but Firefox will accept it and pass it to my JS with no problem. Firefox, however will ask to save or open the response as a file.

                  What's the correct, cross-browser Content-Type?

                  解决方案

                  You may solve the issue by parsing the response into the JSON object by using jQuery funcion parseJSON - http://api.jquery.com/jQuery.parseJSON/

                  The parameter you pass into the function is the JSON object string, which you extract from the response data:

                  function AjaxResponse (data) {  // AJAX post callback 
                    var jsonResult = $.parseJSON(data.substring(data.indexOf("{"), data.lastIndexOf("}") + 1));
                  }
                  

                  Tested (besides Chrome which problem this solves) in FF and IE8 for the following simple JSON result, for other browsers and more complex responses no guarantees...


                  NOTE: the content type in this case is text/plain or text/html I think - I've used the following ASP.Net MVC function to return the result

                  ContentResult System.Web.Mvc.Controller.Content(string content);
                  

                  Where I returned the JSON object like

                  System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer 
                      = new System.Web.Script.Serialization.JavaScriptSerializer();
                  var jsonResponse = jsonSerializer.Serialize(
                      new { IArticleMediaId = 0
                          , ImageUrl = Url.Content(fullImgPath)
                          });
                  return Content(jsonResponse);
                  

                  这篇关于浏览器对 json ajax 响应的 Content-Type 标头有什么要求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Show a progress bar for downloading files using XHR2/AJAX(显示使用 XHR2/AJAX 下载文件的进度条)
                  How can I open a JSON file in JavaScript without jQuery?(如何在没有 jQuery 的情况下在 JavaScript 中打开 JSON 文件?)
                  How do I get the HTTP status code with jQuery?(如何使用 jQuery 获取 HTTP 状态码?)
                  How to get response url in XMLHttpRequest?(如何在 XMLHttpRequest 中获取响应 url?)
                  WebKit quot;Refused to set unsafe header #39;content-length#39;quot;(WebKit “拒绝设置不安全的标头‘内容长度’)
                  $.ajax call working fine in IE8 and Doesn#39;t work in firefox and chrome browsers($.ajax 调用在 IE8 中运行良好,但在 Firefox 和 chrome 浏览器中不起作用)

                  <i id='u5pQa'><tr id='u5pQa'><dt id='u5pQa'><q id='u5pQa'><span id='u5pQa'><b id='u5pQa'><form id='u5pQa'><ins id='u5pQa'></ins><ul id='u5pQa'></ul><sub id='u5pQa'></sub></form><legend id='u5pQa'></legend><bdo id='u5pQa'><pre id='u5pQa'><center id='u5pQa'></center></pre></bdo></b><th id='u5pQa'></th></span></q></dt></tr></i><div id='u5pQa'><tfoot id='u5pQa'></tfoot><dl id='u5pQa'><fieldset id='u5pQa'></fieldset></dl></div>

                  <small id='u5pQa'></small><noframes id='u5pQa'>

                      <tbody id='u5pQa'></tbody>
                  1. <tfoot id='u5pQa'></tfoot>
                      <bdo id='u5pQa'></bdo><ul id='u5pQa'></ul>

                            <legend id='u5pQa'><style id='u5pQa'><dir id='u5pQa'><q id='u5pQa'></q></dir></style></legend>