问题:
使用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. python pip ,安装,卸载,查看等命令,不同版本

    pycharm及python的使用说明   Python和 pycharm的使用 1. pycharm和Python 下载 安装后需要激活码.判断Python是否安装好了,cmd下跑: python ...

  2. linux挂载命令mount及U盘、移动硬盘的挂载

    一.mount的命令格式是(注意mount只能在root权限下运行) mount dervice dir dervice是要挂载的设备,dir是挂载点 二.查看当前磁盘列表的设备 fdisk -l 显 ...

  3. 初步学习pg_control文件之八

    接前文  初步学习pg_control文件之七  继续 看:catalog_version_no 代码如下: static void WriteControlFile(void) { ... /* * ...

  4. php之apc浅探

    扩展编译: ./configure --enable-apc --with-php-config=/usr/local/php/bin/php-config --prefix=/usr/local/a ...

  5. PHP的array_merge()合并数组

    ,4];print_r(array_merge($arr1,$arr2));返回结果:Array(    [a] => 3    [b] => 2    [0] => 4)1注释:当 ...

  6. python 网络编程(socketserver,阻塞,其他方法)

    重点回顾: (重点)粘包 : 就是因为接收端不知道如何接收数据,造成接收数据的混乱的问题 只发生在tcp协议上. 因为tcp协议的特点是面向数据流形式的传输 粘包的发生主要是因为tcp协议有两个机制: ...

  7. LeetCode 2——两数相加

    1. 题目 2. 解答 循环遍历两个链表 若两个链表都非空,将两个链表结点的值和进位相加求出和以及新的进位 若其中一个链表为空,则将另一个链表结点的值和进位相加求出和以及新的进位 然后将每一位的和添加 ...

  8. 机器学习 (三) 逻辑回归 Logistic Regression

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  9. python字符串排序方法

    一般情况下,python中对一个字符串排序相当麻烦: 一.python中的字符串类型是不允许直接改变元素的.必须先把要排序的字符串放在容器里,如list. 二.python中的list容器的sort( ...

  10. 从零开始配置Jenkins(二)——常见问题及排错思路

    [前言] 一年多以前就听说Jenkins了,那时知道是它可以完成自动构建,感觉蛮强大的.后来,很多人都说它很恶心.最近,公司需要搭建新的服务器,小编就负责从头开始配置并且发布部署成功每一条线每一个项目 ...