ajax POST跨域请求完美解决

来源:互联网 发布:统计学 算法模型 编辑:程序博客网 时间:2024/05/19 14:02

方式:

js前端请求:

function getOcrInfo(imageData){
$.ajax({
   url: 'http://localhost:8080/LSWS/ws/ocr/getWebImageRecognitionJsonStringByBase64Image',
   type: 'post',
   dataType:'json',
   //async:false,
   data: {
        "imageData" : imageData
   },
   success:function(data){
      if(data.flag==0){
       var name=decodeURIComponent(data.name);
   var position=decodeURIComponent(data.position);

      }else{
      FR.Msg.alert("错误提示","获取识别结果失败,请重试!");
     
      
   },
   error:function(data){
       FR.Msg.alert("错误提示","获取识别结果失败,请重试!");
   }
});

服务器后端:

@RequestMapping(value="/getWebImageRecognitionJsonStringByBase64Image", method = RequestMethod.POST)
@ResponseBody
public String getWebImageRecognitionJsonStringByBase64Image(HttpServletRequest request,HttpServletResponse response,String imageData) {
String result = "";
//System.out.println(imageData);
try{
WebImageRecognition gr = new WebImageRecognition();
result = gr.getWebImageRecognitionJsonObjectByBase64Image(imageData);

response.addHeader("Access-Control-Allow-Origin", "*");   //用于ajax post跨域(*,最好指定确定的http等协议+ip+端口号)
response.setCharacterEncoding("utf-8");
//response.getWriter().write(result);
//response.getWriter().close();
}catch(Exception e){
e.printStackTrace();
logger.error("getGeneralRecognition:"+e);
result = "{\"flag\":\"1\",\"errorMessage\":\"server change error at OcrController!\"}";
}
   return result;
}


注:跨域支持还可以使用CORS ,请参见:http://www.ruanyifeng.com/blog/2016/04/cors.html

0 0