js双通信java,js和java的http通信
可查看基于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通信相关推荐
- js中变量和jsp中java代码中变量互相访问解决方案
1.js变量获取jsp页面中java代码的变量值. 方法:var JS变量名 = <%=JAVA变量名 %> 2.java代码获取js变量的值. 说明:在JSP中:Java部分是在 ...
- java js引擎,Java8 Nashorn JavaScript引擎
使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代现有的Nashorn Java脚本引擎.Nashorn提供2至10倍更好的性能,因为它直接编译代码在存储器,并传递到字节码 ...
- js变量和java变量相等,js中变量和jsp中java代码中变量互相访问解决方案
1.js变量获取jsp页面中java代码的变量值. 方法:var JS变量名 = 我们常常会将js文件和jsp文件分开写,在js文件中,上面的方法似乎不管用了. 也可以通过变通的方法来解决: a.js ...
- flask与js交互的示例代码_Frida Java Hook 详解(安卓9):代码及示例(上)
Frida Java Hook 详解(安卓9):代码及示例(上) 前言 1.1 FRIDA SCRIPT的"hello world" 1.1.1 "hello world ...
- java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络]
java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/46364875 转载于:htt ...
- java+js实现展示本地文件夹下的所有图片demo
java+js实现展示本地文件夹下的所有图片demo 最近项目遇到需要实现前端通过一个按钮点击事件,弹窗浏览本地文件夹下的所有图片: 思路: - 获取到所需展示图片的本地文件夹内所有图片的文件绝对 ...
- java+js实现人脸识别-基于百度api
java+js实现人脸识别-基于百度api 我的第一次分享 第一步-我们了解下实现的思路 代码部分:1.js代码 2.后台代码 3.如何使用百度大脑 4.如何使用 navigator.mediaDev ...
- 十分钟快速掌握 Base 64 | Java JS 密码系列
Java 密码系列 - Java 和 JS Base 64 Base 64 不属于密码技术,仅是编码方式.但由于在 Java.JavaScript.区块链等出现的频率较高,故在本系列文章中首先分享 B ...
- Java + JS实现微信分享功能
随着腾讯帝国的强大,越来越多的APP.第三方平台需要倚靠腾讯的产品发展壮大了.微信拥有上十亿用户基础,各大小公司自然不会放过这么优质的平台,所以现在以及未来都会有很多很多与微信集成的地方,比如今天演示 ...
- 【华为OD机试 2023】开心消消乐(Java JS Python)
华为od机试题库 华为OD机试2022&2023(C++Java JS Py):https://blog.csdn.net/banxia_frontend/category_12225173. ...
最新文章
- SpringBoot-web开发(二): 页面和图标定制(源码分析)
- Android应用程序键盘(Keyboard)消息处理机制分析(12)
- boost::hana::take_while用法的测试程序
- XenServer 6.5实战系列之十一:Install Update For XenServer 6.5
- redis高级进阶(2)
- python怎么判断质数和合数_什么是质数和合数以及判断方法介绍
- excel报表汇总怎么做?
- 安卓系统中默认打开蓝牙 HCI snoop 文件的方法
- 线性代数的那些事(二)行列式与逆
- 【chrome不能扩展程序怎么办】4步搞定安装导入扩展
- java replace 忽略大小写_java替换字符串时忽略大小写
- 计算机画图学生作品小学,电脑绘画作品_需要一件小学生电脑绘画作品
- ui设计需要会html吗,高逼格UI设计需要从何入手?
- 耳塞检测_曾经很烂的无线耳塞,但它们现在很不错
- ios 应用特殊节日页面整体变灰
- Linux驱动开发(十五)---如何使用内核现有驱动(显示屏)
- 【MySQL基础】5- SQL语句大全
- SIM800C英文短信收发调试记录
- 在安卓中压缩GIF的几种方法(附实例代码)
- 2021年电工(初级)考试题库及电工(初级)找解析
热门文章
- Python之数据分析(算数平均值、加权平均值、最大值与最小值)
- java继承test 怎么写_Java Junit Test 要怎么写?
- vs2019安装rdlc_科学网—vs2019 完全安装到D盘 - 刘航宇的博文
- 使用Python编写数独游戏自动出题程序
- linux下如何升级gcc和g++编译器
- 1. InteliJ IDEA 下 的SpringBoot
- SURF特征提取分析(一)
- lamp mysql安全_LAMP第三部分php,mysql配置
- python中3 and not 5_python中not、and和or的优先级与详细用法介绍
- 力扣35,搜索插入位置(JavaScript)