springmvc ajax post請求
阿新 • • 發佈:2019-01-28
先去http://mvnrepository.com/搜尋fastjson,jackson-annotations,jackson-databind,jackson-core這幾個庫,根據對應的版本號拿到pom.xml中dependency標籤內容,然後複製到專案中的pom.xml中
專案的pom.xml如下:
然後專案maven install下載庫<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.springdemo</groupId> <artifactId>demo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>demo Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.41</version> </dependency> </dependencies> <build> <finalName>demo</finalName> </build> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>
編寫controller,使用@Responsebody註解,指定返回內容
程式碼,World.java:
package com.springmvc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class World { @RequestMapping(value="/hworld",method = RequestMethod.POST) @ResponseBody public String sayHello(String pagenum){ //獲得post引數 System.out.println(pagenum); return "{\"returncode\":0,\"message\":\"hello world\"}"; } }
因為跨域問題要在同目錄下配置CORS的Java程式碼,WebConfig.java:
html檔案,test.htmlpackage com.springmvc.controller; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**"); } }
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>aaaa</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js">
</script>
</head>
<body >
<button type="button" onclick="load()">Click Me!</button>
<ul>
</ul>
</body>
<script>
function load(){
$.ajax({
url:'http://127.0.0.1:8080/demo/hworld',
type:'post', //資料傳送方式
dataType:'json', //接受資料格式 (這裡有很多,常用的有html,xml,js,json)
data:'pagenum=1', //要傳遞的資料
error: function(){ //失敗
alert('Error loading document');
},
success: function(msg){ //成功
alert(msg["message"]);
}
});
};
</script>
</html>
啟動服務