我有一个奇怪的行为,我有两种不同的方法:但所有这些方法都返回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>
答案 0 :(得分:0)
response = response.replace(/\\"/gi,'"');
可以解决这个问题,因为HTML中唯一看起来无效的是\"
无处不在
你可以清理回车,如果你不需要它出现在html部分
response = response.replace(/\\"/gi,'"').replace(/[\n\r]+/g, '');