MVC json响应是什么样的响应呢?

时间:2014-02-01 11:20:50

标签: asp.net-mvc json response asp.net-mvc-5

我有一个奇怪的行为,我有两种不同的方法:但所有这些方法都返回JSON,如下所示:

return Json(new { success = success }, JsonRequestBehavior.AllowGet);

但是,如果我在javascript中调查响应,则通过第三方功能返回一个,但第一个是正确的,

response
{...}
    [prototype]: {...}
    success: true

然而另一个响应是这样的:它不正确:

response
{...}
    [prototype]: {...}
    response: "{\"success\":true}"
    responseHeaders: "Cache-Control: private, s-maxage=0\r\nContent-Type: application/json; charset=utf-8\r\nServer: Microsoft-IIS/8.0\r\nX-AspNetMvc-Version: 5.0\r\nX-AspNet-Version: 4.0.30319\r\nX-SourceFiles: =?UTF-8?B?YzpcdXNlcnNcaWdvclxkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXERhdGluZ1dlYnNpdGVcRGF0aW5nV2Vic2l0ZVxNeVByb2ZpbGVcVXBsb2Fk?=\r\nX-Powered-By: ASP.NET\r\nDate: Sat, 01 Feb 2014 11:09:36 GMT\r\nContent-Length: 16\r\n\r\n"
    status: 200

我认为这种其他类型的响应可能被第三方元素改变了,但不是json响应了吗?

如何从成功中获取值,例如,或者如果我将其作为字符串呈现在我的局部视图中,我该如何将其删除,因为它看起来像这样:

  

回复:“{\”partial \“:\”\ r \ n \ u003cli   id = \\“50 \\”\ u003e \ u003cimg class = \\“cloudzoom-gallery \\”   src = \ u0027 / controller / GetThumbnail / 50 \ u0027 data-cloudzoom   = \\“useZoom:\ u0027.cloudzoom \ u0027,image:\ u0027 / controller / GetImage / 50 \ u0027,zoomImage:   \ u0027 /我的资料/ GetLargeImage / 50 \ u0027 \\“\ u003e \ r \ n
  \ u003cdiv class = \\“caption text-center \\”   风格= \\ “显示:无; \\” \ u003e \ r \ n
  \ u003cp \ u003e \ u003c / p \ u003e \ r \ n \ u003cp \ u003e
  \ r \ n \ u003c / p \ u003e \ r \ n   \ u003c /格\ u003e \ r \ n \ u003c /锂\ u003e \ r \ n \ “}”

然后绝对不能将其作为正确的html :(

知道这个回应是什么意思吗?它是什么类型以及如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

response = response.replace(/\\"/gi,'"');

可以解决这个问题,因为HTML中唯一看起来无效的是\"无处不在

你可以清理回车,如果你不需要它出现在html部分

response = response.replace(/\\"/gi,'"').replace(/[\n\r]+/g, '');