2014-02-01 4 views
2

У меня есть странное поведение, у меня есть 2 разные методы: но все они возвращают JSON, например, так:MVC Ответ json, какой ответ?

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

Althought один возвращается через функциональность третьей стороны, однако, первый один правильный, если я исследовать отклик в 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?

Как я могу получить значение от успеха, например, или если бы я сделать там строку мой частичный вид, как я exract, потому что это выглядит тогда так:

ответ: «{\ "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/MyProfile/GetLargeImage/50 \ u0027 \\" \ u003e \ r \ n
\ u003cdiv class = \\ "text text-center \\" style = \\ "display: none; \\" \ u003e \ r \ n
\ u003cp \ u003e \ u003c/p \ u003e \ r \ n \ u003cp \ u003e
\ r \ n \ u003c/p \ u003e \ г \ п
\ u003c/дел \ u003e \ г \ п \ u003c/li \ u003e \ г \ п \ "}"

Что то определенно не может быть parces как правильный HTML :(

Любая идея, что означает этот ответ? и какой тип это и как с ним справиться?

ответ

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

будет делать трюк, как единственное, что выглядит недействительным в вашем HTML является \" везде

вы могли очистки каретка возвращается, а если не нужно присутствовать в HTML частичной с

response = response.replace(/\\"/gi,'"').replace(/[\n\r]+/g, ''); 
Смежные вопросы