$post 提交表单 不能跨域,应该怎么做
2个回答
展开全部
ajax - getJSON() 方法 可以 跨域
定义和用法
通过 HTTP GET 请求载入 JSON 数据。
在 jQuery 1.2 中,您可以通过使用 JSONP 形式的回调函数来加载其他网域的 JSON 数据,如
"myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
注意:此行以后的代码将在这个回调函数执行前执行。
语法
jQuery.getJSON(url,data,success(data,status,xhr))
示例
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?
tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
2017-07-10
展开全部
方式:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询