javascript我的调用Spring控制器失败
在我的HTML中,我有一个按钮:
<button id="download_button">Confirmer</button>
在我的Js中,我有以下方法:
$("#download_button").click(function() {
downloadMes();
});
downloadMes: function(){
var sources = this.map.getLayers().getArray().map(function(layer){
var source_url = layer.getSource().getUrls()[0];
var layer_name = layer.getSource().getParams()['LAYERS'];
var request = '?VERSION=1.1.0&OUTPUTFORMAT=CSV';
if(_.includes(this.downloadSources, source_url)){
return source_url + request + '&TYPENAME=' + layer_name;
}
},this);
var sourcesToCall = _.compact(sources);
var jsonfile= {json:JSON.stringify(sourcesToCall)};
$.ajax({
type:'POST',
url: "/downloadCSV",
data: jsonfile,
dataType: "json"
});
}
我已经创建了一个Spring控制器-->;下载CSV控制器:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class DownloadCSVController {
@RequestMapping(value = "/downloadCSV", method = RequestMethod.GET)
public void getCSV(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws IOException{
System.out.println("DEBUT TELECHARGEMENT");
// SOME LOGIC
System.out.println("FIN TELECHARGEMENT");
}
}
当我点击我的按钮时,我有以下错误:
POST http://localhost:8080/downloadCSV 404 (Introuvable)
怎么了
# 1 楼答案
您试图发布数据以获取url。所以换个控制器试试这个
# 2 楼答案
更改ajax调用以获得如下方法
或者将spring控制器方法更改为post
PS:如果您的项目有一些根文件夹,并且基于dispatcher servlet url映射,在请求localhost:8080/yourproject/downloadCSV之类的内容时也指定了它的名称