可查看基于ajax的前后端多种数据交互:

js 发送text & 接收 text

js部分

var xmlhttp;

function callback() {

if (xmlhttp.readyState==4){// 4 = "loaded"

if (xmlhttp.status==200){// 200 = OK

alert("成功了 = " + xmlhttp.responseText);

}else{

alert("error");

}

}

}

//POST方式

function test(){

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange=callback;

xmlhttp.open("POST","test.do",true);

// 设置POST请求的请求头 POST需添加这项 GET可不需要.

xmlhttp.setRequestHeader("Content-Type"

, "application/x-www-form-urlencoded");

xmlhttp.send('password=123&username=mingzi');

}

//GET方式

function test(){

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange=callback;

xmlhttp.open("GET","test.do?password=123&username=mingzi",true);

// 设置POST请求的请求头 POST需添加这项 GET可不需要.

//xmlhttp.setRequestHeader("Content-Type"

//, "application/x-www-form-urlencoded");

xmlhttp.send('password=123&username=mingzi');

}

java部分

@RequestMapping(value="/test.do",produces="text/html;charset=UTF-8;")

@ResponseBody

public String test(HttpServletRequest request){

String username=request.getParameter("username");

String password=request.getParameter("password");

String url=request.getRequestURI();

String path=request.getServletPath();

String method =request.getMethod();

System.out.println("\n url is:"+url);

System.out.println("\n path is:"+path);

System.out.println("\n method is:"+method);

System.out.println("\n username is:"+username);

System.out.println("\n password is:"+password);

return "这是后台中文字符";

}

后台输出

url is:/test.do

path is:/test.do

method is:GET

username is:mingzi

password is:123

js 发送text 接收json

js部分

var xmlhttp;

function callback() {

if (xmlhttp.readyState==4){// 4 = "loaded"

if (xmlhttp.status==200){// 200 = OK

var data = xmlhttp.responseText;

var jsonobj = eval('(' + data + ')');

var strTemp = eval('jsonobj.one');

console.log("\n data = " + data);

console.log("\n jsonobj = " + jsonobj);

alert(strTemp);

}else{

alert("error");

}

}

}

function test(){

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange=callback;

xmlhttp.open("POST","test.do",true);

// // 设置POST请求的请求头

xmlhttp.setRequestHeader("Content-Type"

, "application/json");

xmlhttp.send('password=123&username=mingzi');

}

java部分

@RequestMapping(value="/test.do")

@ResponseBody

public JSONObject test(HttpServletRequest request){

String username=request.getParameter("username");

String password=request.getParameter("password");

String url=request.getRequestURI();

String path=request.getServletPath();

String method =request.getMethod();

System.out.println("\n url is:"+url);

System.out.println("\n path is:"+path);

System.out.println("\n method is:"+method);

System.out.println("\n username is:"+username);

System.out.println("\n password is:"+password);

JSONObject obj = new JSONObject();

obj.put("one","一个");

obj.put("two","两个");

System.out.println("\n obj is:"+obj);

return obj;

}

特别注意 java想要返回给前端json数据必须引入一下两个包 (否则会出现406错误)

@ResponseBody返回json格式的数据,而浏览器接受的是text/html;charset=UTF-8文本类型

解决方法:添加json所需要的依赖

org.codehaus.jackson

jackson-core-asl

org.codehaus.jackson

jackson-mapper-lgpl

1.9.12

关于mediaTypes配置和"accept" headers

前端 ACCEPT 类型如下

*.3gppaudio/3gpp, video/3gpp3GPP Audio/Video

*.ac3audio/ac3AC3 Audio

*.asfallpication/vnd.ms-asfAdvanced Streaming Format

*.auaudio/basicAU Audio

*.csstext/cssCascading Style Sheets

*.csvtext/csvComma Separated Values

*.docapplication/mswordMS Word Document

*.dotapplication/mswordMS Word Template

*.dtdapplication/xml-dtdDocument Type Definition

*.dwgimage/vnd.dwgAutoCAD Drawing Database

*.dxfimage/vnd.dxfAutoCAD Drawing Interchange Format

*.gifimage/gifGraphic Interchange Format

*.htmtext/htmlHyperText Markup Language

*.htmltext/htmlHyperText Markup Language

*.jp2image/jp2JPEG-2000

*.jpeimage/jpegJPEG

*.jpegimage/jpegJPEG

*.jpgimage/jpegJPEG

*.jstext/javascript, application/javascriptJavaScript

*.jsonapplication/jsonJavaScript Object Notation

*.mp2audio/mpeg, video/mpegMPEG Audio/Video Stream, Layer II

*.mp3audio/mpegMPEG Audio Stream, Layer III

*.mp4audio/mp4, video/mp4MPEG-4 Audio/Video

*.mpegvideo/mpegMPEG Video Stream, Layer II

*.mpgvideo/mpegMPEG Video Stream, Layer II

*.mppapplication/vnd.ms-projectMS Project Project

*.oggapplication/ogg, audio/oggOgg Vorbis

*.pdfapplication/pdfPortable Document Format

*.pngimage/pngPortable Network Graphics

*.potapplication/vnd.ms-powerpointMS PowerPoint Template

*.ppsapplication/vnd.ms-powerpointMS PowerPoint Slideshow

*.pptapplication/vnd.ms-powerpointMS PowerPoint Presentation

*.rtfapplication/rtf, text/rtfRich Text Format

*.svfimage/vnd.svfSimple Vector Format

*.tifimage/tiffTagged Image Format File

*.tiffimage/tiffTagged Image Format File

*.txttext/plainPlain Text

*.wdbapplication/vnd.ms-worksMS Works Database

*.wpsapplication/vnd.ms-worksWorks Text Document

*.xhtmlapplication/xhtml+xmlExtensible HyperText Markup Language

*.xlcapplication/vnd.ms-excelMS Excel Chart

*.xlmapplication/vnd.ms-excelMS Excel Macro

*.xlsapplication/vnd.ms-excelMS Excel Spreadsheet

*.xltapplication/vnd.ms-excelMS Excel Template

*.xlwapplication/vnd.ms-excelMS Excel Workspace

*.xmltext/xml, application/xmlExtensible Markup Language

*.zipaplication/zipCompressed Archive

js双通信java,js和java的http通信相关推荐

  1. js中变量和jsp中java代码中变量互相访问解决方案

    1.js变量获取jsp页面中java代码的变量值.  方法:var JS变量名 = <%=JAVA变量名 %>   2.java代码获取js变量的值.  说明:在JSP中:Java部分是在 ...

  2. java js引擎,Java8 Nashorn JavaScript引擎

    使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代现有的Nashorn Java脚本引擎.Nashorn提供2至10倍更好的性能,因为它直接编译代码在存储器,并传递到字节码 ...

  3. js变量和java变量相等,js中变量和jsp中java代码中变量互相访问解决方案

    1.js变量获取jsp页面中java代码的变量值. 方法:var JS变量名 = 我们常常会将js文件和jsp文件分开写,在js文件中,上面的方法似乎不管用了. 也可以通过变通的方法来解决: a.js ...

  4. flask与js交互的示例代码_Frida Java Hook 详解(安卓9):代码及示例(上)

    Frida Java Hook 详解(安卓9):代码及示例(上) 前言 1.1 FRIDA SCRIPT的"hello world" 1.1.1 "hello world ...

  5. java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络]

    java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/46364875 转载于:htt ...

  6. java+js实现展示本地文件夹下的所有图片demo

    java+js实现展示本地文件夹下的所有图片demo 最近项目遇到需要实现前端通过一个按钮点击事件,弹窗浏览本地文件夹下的所有图片:  思路:  - 获取到所需展示图片的本地文件夹内所有图片的文件绝对 ...

  7. java+js实现人脸识别-基于百度api

    java+js实现人脸识别-基于百度api 我的第一次分享 第一步-我们了解下实现的思路 代码部分:1.js代码 2.后台代码 3.如何使用百度大脑 4.如何使用 navigator.mediaDev ...

  8. 十分钟快速掌握 Base 64 | Java JS 密码系列

    Java 密码系列 - Java 和 JS Base 64 Base 64 不属于密码技术,仅是编码方式.但由于在 Java.JavaScript.区块链等出现的频率较高,故在本系列文章中首先分享 B ...

  9. Java + JS实现微信分享功能

    随着腾讯帝国的强大,越来越多的APP.第三方平台需要倚靠腾讯的产品发展壮大了.微信拥有上十亿用户基础,各大小公司自然不会放过这么优质的平台,所以现在以及未来都会有很多很多与微信集成的地方,比如今天演示 ...

  10. 【华为OD机试 2023】开心消消乐(Java JS Python)

    华为od机试题库 华为OD机试2022&2023(C++Java JS Py):https://blog.csdn.net/banxia_frontend/category_12225173. ...

最新文章

  1. SpringBoot-web开发(二): 页面和图标定制(源码分析)
  2. Android应用程序键盘(Keyboard)消息处理机制分析(12)
  3. boost::hana::take_while用法的测试程序
  4. XenServer 6.5实战系列之十一:Install Update For XenServer 6.5
  5. redis高级进阶(2)
  6. python怎么判断质数和合数_什么是质数和合数以及判断方法介绍
  7. excel报表汇总怎么做?
  8. 安卓系统中默认打开蓝牙 HCI snoop 文件的方法
  9. 线性代数的那些事(二)行列式与逆
  10. 【chrome不能扩展程序怎么办】4步搞定安装导入扩展
  11. java replace 忽略大小写_java替换字符串时忽略大小写
  12. 计算机画图学生作品小学,电脑绘画作品_需要一件小学生电脑绘画作品
  13. ui设计需要会html吗,高逼格UI设计需要从何入手?
  14. 耳塞检测_曾经很烂的无线耳塞,但它们现在很不错
  15. ios 应用特殊节日页面整体变灰
  16. Linux驱动开发(十五)---如何使用内核现有驱动(显示屏)
  17. 【MySQL基础】5- SQL语句大全
  18. SIM800C英文短信收发调试记录
  19. 在安卓中压缩GIF的几种方法(附实例代码)
  20. 2021年电工(初级)考试题库及电工(初级)找解析

热门文章

  1. Python之数据分析(算数平均值、加权平均值、最大值与最小值)
  2. java继承test 怎么写_Java Junit Test 要怎么写?
  3. vs2019安装rdlc_科学网—vs2019 完全安装到D盘 - 刘航宇的博文
  4. 使用Python编写数独游戏自动出题程序
  5. linux下如何升级gcc和g++编译器
  6. 1. InteliJ IDEA 下 的SpringBoot
  7. SURF特征提取分析(一)
  8. lamp mysql安全_LAMP第三部分php,mysql配置
  9. python中3 and not 5_python中not、and和or的优先级与详细用法介绍
  10. 力扣35,搜索插入位置(JavaScript)