问题:
使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code":-1,"msg":"123","data":[]}
jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

jQuery $.get() 方法
$.get() 方法通过 HTTP GET 请求从服务器上请求数据,在URL地址上可以看到传递的参数,一般用于传递少量数据。
语法: $.get(URL,callback);
详细语法:$(selector).get(url, data, success(response,status,xhr),dataType)

jQuery $.post() 方法
$.post() 方法通过 HTTP POST 请求从服务器上请求数据,在URL地址上不可以看到传递的参数,一般用于传递大量数据。
语法:$.post(URL,data,callback);
详细语法: jQuery.post(url,data,success(data, textStatus,jqXHR),dataType)

查看$.post()详细的语法:
jQuery.post(url,data,success(data, textStatus,jqXHR),dataType)
你会发现,最后边有个参数 dataType,这个就是问题所在。
这个dataType是可选参数,它规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或html)。

详细说明
该函数是简写的 Ajax 函数,等价于:
$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType:
dataType
});

解决:

$.post() 加上最后边的一个可选参数 dataType 为“json”类型


示例:获得 test.php 页面返回的 json 格式的内容:
$.post("test.php", { "func": "getNameAndTime" },
   function(data){
    alert(data.name); // John
    console.log(data.time); // 2pm
   },
"json");

示例:获得 test.php 页面的内容,并存储为 XMLHttpResponse 对象,并通过 process() 这个JavaScript 函数进行处理:
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
    process(data);
   },
"xml");


Struts2中对于后台向前端返回JSON格式数据一般使用以下方式:

<span style="font-size:18px;">	public void writeJson2Resp(String json) throws IOException {
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setCharacterEncoding("gbk");
resp.setContentType("text/html;charset=gbk"); //这一句没加入会导致乱码
PrintWriter out = resp.getWriter();
out.write(json);
out.flush();
out.close();
}</span>

在 BaseAction 实现该方法,那么其他的 Action  只要继承了改类,就可以使用该方法向前台页面返回JSON格式数据


参考链接:
jQuery ajax 参考手册
http://www.w3school.com.cn/jquery/jquery_ref_ajax.asp

HTTP 方法:GET 对比 POST
http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

jQuery ajax - post() 方法:
http://www.w3school.com.cn/jquery/ajax_post.asp

jQuery ajax - get() 方法
http://www.w3school.com.cn/jquery/ajax_get.asp


使用jQuery发送POST,Ajax请求返回JSON格式数据的更多相关文章

  1. springmvc通过ajax异步请求返回json格式数据

    jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...

  2. 发送Ajax请求获取JSON格式数据

    Aspx前端页面: <script type="text/javascript"> $(function () { $.getJSON("Ajax/TestA ...

  3. Flask(python)异步(ajax)返回json格式数据

    主要讨论两个问题,第一个是关于json.dumps 与jsonify区别,第二个是几种异步的区别(见jQuery中的$.getJSON.$.ajax.$.get.$.post的区别). json.du ...

  4. jquery ajax调用返回json格式数据处理

    Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: ...

  5. AJAX请求,返回json进行页面绑值

    AJAX请求,返回json进行页面绑值 后台 controller @RequestMapping(value = "backjson.do",method=RequestMeth ...

  6. 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法

    在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...

  7. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  8. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  9. 返回json格式数据乱码

    本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...

随机推荐

  1. 20145202马超《JAVA》预备作业3

    虚拟机的安装[http://www.cnblogs.com/tuolemi/p/5861062.html] Linux命令[http://www.cnblogs.com/tuolemi/p/58781 ...

  2. set<pair<int,int> > 的运用

    In this cafeteria, the N tables are all ordered in one line, where table number 1 is the closest to ...

  3. centos下搭建svn服务器端/客户端

    1.安装 yum install subversion httpd mod_dav_svn 2.创建仓库存储代码 mkdir /var/repos svnadmin create /var/repos ...

  4. 活动的生命周期 Android

    1.运行程序 onCreate().onStart()和 onResume() 2.跳转到非弹框视图控制器 onPause()和 onStop() 返回上一个视图控制器(没被回收) onRestart ...

  5. C++知识点 内存占用问题

    有一次去面试,谈的挺好的,被人问了一个问题,瞬间暴露自己基础能力弱的弱点了,这里自己记录下,以后慢慢长进. 问题 char test1[]={1,2,3,4}; char test2[]={1,2,3 ...

  6. python接口测试(二)——配置文件的使用

    在接口测试中,有些东西是固定不变的,比如url,若想更改的话就必须每个请求都更改,因此,可以放到配置文件中使用. 1.创建一个.ini的配置文件,如图: 2.读取配件文件中的内容,后续进行引用 #co ...

  7. CSP201312-1:出现次数最多的数

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的“计算机职业资格认证”考试,针对计算机软件开发. ...

  8. (转)Unreal Networking Guide Created by Zach Metcalf

        2. 3.                                                        

  9. w命令集合

    startx:在命令行模式下输入会进入图形界面 exit:注销Linux(以login shell登录会注销账号,以non-login shell登录会退出终端) data:显示日期和时间 data ...

  10. TLS协议分析

    TLS协议分析 本文目标: 学习鉴赏TLS协议的设计,透彻理解原理和重点细节 跟进一下密码学应用领域的历史和进展 整理现代加密通信协议设计的一般思路 本文有门槛,读者需要对现代密码学有清晰而系统的理解 ...