jquery – $.ajax上的$.parseJSON – 解析响应的问题

前端之家收集整理的这篇文章主要介绍了jquery – $.ajax上的$.parseJSON – 解析响应的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不知道为什么,但是在进行ajax调用时我遇到了$.parse JSON的问题,我需要检查响应是否包含JSON,然后继续用$.parseJSON解析它,如果它不包含任何JSON然后它将打印出一个元素中的响应(响应将包含一些HTML).

然后我测试了eval是否可以做任何事情,当然这样做了,但我不想为此使用eval.

我得到的代码

  1. $.ajax({
  2. url: 'ajax.PHP',success: function(response)
  3. {
  4. var msg = $.parseJSON(response);
  5.  
  6. //alert(typeof(response)); <-- returns 'string'
  7.  
  8. //alert(typeof(msg)); <-- returns 'object'
  9.  
  10. //alert(msg.error); <-- this doesn't work at all.
  11.  
  12. //eval(response) <-- returns [object Object]
  13.  
  14. if(msg.error !== '')
  15. {
  16. ajaxWindow.html(msg.error);
  17. }
  18. else
  19. {
  20. ajaxWindow.html(response).hide().slideDown('slow');
  21. }
  22. }
  23. });

那么为什么它无法解析JSON字符串呢? jQuery.parseJSON清楚地说:

Takes a well-formed JSON string and returns the resulting JavaScript object.

但是没有什么能够被解析,这是某种错误,还是一个错误

编辑:JSON:

  1. [{"error":"Error loading template"}]

解决方法

你有一个数组,所以你需要通过第一个索引访问它.

代替:

  1. alert( msg.error );

做:

  1. alert( msg[0].error );

猜你在找的jQuery相关文章