Java 使用ajax将大型json数据发送到控制器
这是我的Java 使用ajax将大型json数据发送到控制器,java,ajax,spring,spring-mvc,Java,Ajax,Spring,Spring Mvc,这是我的JsonExample.jsp文件 <!DOCTYPE html> <html> <title>jQuery Function Demo - jQuery4u.com</title> <head> <script src="http://www.jquery4u.com/function-demos/js/jquery-1.6.
JsonExample.jsp
文件
<!DOCTYPE html>
<html>
<title>jQuery Function Demo - jQuery4u.com</title>
<head>
<script
src="http://www.jquery4u.com/function-demos/js/jquery-1.6.4.min.js"></script>
<script src="http://www.jquery4u.com/scripts/function-demos-script.js"></script>
<script>
function call() {
//var url = 'http://192.168.10.82:8081/formulator-service/tracks?callback_track=processJSON';
var url = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=processJSON&tags=monkey&tagmode=any&format=json";
$.ajax({
type : "GET",
url : url,
async : false,
jsonpCallback : "processJSON",
contentType : "application/json",
dataType : "jsonp",
success : function(json) {
alert(json.title);
//alert(json.name);
controllerCaller(json);
},
failure : function() {
alert("There is some error");
}
});
}
function controllerCaller(json) {
//var dummy = "poiuytre";
alert("in the Controller caller");
//var url="/controllerCall";
$.ajax({
type : "POST",
url : "controllerCall",
async : false,
data : {
jsondata : json
},
success : function() {
alert("In controller Ajax function");
},
failure : function(error) {
alert("somthing went wrong");
}
});
}
</script>
</head>
<body>
<button onclick="call()">Get Json</button>
</body>
</html>
package com.web.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/")
public class BaseController {
@RequestMapping(method = RequestMethod.GET)
public String printHello(ModelMap model) {
return "Jsonpexample";
}
@RequestMapping(value = "/controllerCall", method = RequestMethod.POST, produces = "json/application")
public @ResponseBody
String controllerCall(
@RequestParam(value = "jsondata", required = true) String data) {
System.out.println("this is in the second function");
return data;
}
}
问题是控制器无法接收视图发送的数据。有人能建议一个合适的方法吗?谢谢。您将其发送到的URL是:“controllerCall”这应该是一个URL,就像您在函数
调用中使用的一样
您说不能发送是什么意思?您是否收到错误?能否尝试将consumes=“application/json;charset=utf-8”
添加到RequestMapping?问题是我的json数据太长,无法通过get方法发送,因此我必须使用POST方法。但是如果我试图执行这个代码,写在上面。这是正确的。我想要的是使用POST方法,使用GET方法将我接收到的json数据发送到控制器。如果我将controllerCaller函数中的ajax“Type:GET”和“@RequestMapping(value=“/controllerCall)”中的“method=RequestMethod.POST”更改为“method=RequestMethod.GET”,那么上面的简单代码就可以工作了,method=RequestMethod.POST,products=“json/application”)