ajax 跨域 ,后台只返回json数据,有什么解决办法吗

ajax 跨域 ,后台只返回json数据,后台不更改 返回数据格式,有什么办法吗

跨域用的就是jsonp但使用jsonp不能直接接收json数据会报错
我问的是使用jsonp有什么办法可以让他接收json数据

8个回答

服务器端做代理,或者用yql转为jsonp数据
JSONP跨域访问在线代理API

没太明白什么意思,用ajax是返回json格式的数据呀,你的问题是什么?

两种解决方案 一种使用jsonp 请求 但是只能是get请求 另外一种设置请求头
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); //哪种请求可以访问
resp.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
resp.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
resp.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.

HttpServletResponse httpServletResponse = (HttpServletResponse) response;

      httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");

      httpServletResponse.setHeader("Access-Control-Allow-Headers", "accept,content-type");

      httpServletResponse.setHeader("Access-Control-Allow-Methods", "OPTIONS,GET,POST,DELETE,PUT");

      chain.doFilter(request, httpServletResponse);

switch(dt)
{
case "initinlocal":
dt = "json";
success( that.options.initData, null, null );
this.options.initData = false;
break;
case "json":
case "jsonp":
if ( this.xhr ){
this.xhr.abort();
}
this.xhr = $.ajax(this._ajaxSettings( ));
this.xhr
.success(function(content, st, xhr) {
success( content, st, xhr );
}).error(function(xhr,st,err) {

that._trigger ("onLoadError", null, [{xhr:xhr,st:st,err:err}]);
if (npage === 1) { that._endReq(); }
xhr=null;
that.refresh();
}).complete(function( jqXHR, status ) {
if ( jqXHR === that.xhr ) {
that.xhr = null;
}
});
break;
case "local":
case "clientside":
that._beginReq();
that.options.datatype = "local";
var req = that._addLocalData();
this._addJSONData(req,grid.rowsView,rcnt,npage>1,adjust);
if(!that.options.b_sortdata){
that.refresh();
if(lc) { lc.call(that,req); }
that._trigger("AfterLoad", null,[req]);
if (pvis) { grid.populateVisible(); }
}
that._endReq();
if (that.options.frozenColumns) {
that._setFrozenHeight();
}
break;
}

        希望对你有帮助!!!!

ajax跨域服务端必须做修改,或者header里加Access-Control-Allow-Origin或者使用jsonp。看了下你的说法,不想更改原后台返回数据的格式还想使用jsonp,基本不可能,你应该还没理解jsonp的原理。

ajax跨域的话可以用jsonp,你可以研究下

qq_35883107
qq_35883107 jsonp返回直接返回json数据是报错的
一年多之前 回复

使用jsonp就可以解决跨域问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ajax 跨域 ,后台只返回json数据,有什么解决办法吗
ajax 跨域 ,后台只返回json数据,后台不更改 返回数据格式,有什么办法吗rnrn跨域用的就是jsonp但使用jsonp不能直接接收json数据会报错rn我问的是使用jsonp有什么办法可以让他接收json数据
Ajax获取后台返回的json数据
情景描述: 点击页面“查看”按钮,弹出一个对话框(模态框),模态框中的数据来源于后台(java)。 头部引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8&q
前台ajax接收json数据和后台返回json数据
网上找资料,说前台js接收json格式的数据有json。stringifiy(),eval(),json.parse()这几种,那这几种方法各在什么情况下用呢.?rn例如这是我的后台rnrn[code=java] @RequestMapping("/getBicycleList")rn @ResponseBodyrn public String getBicycleList(String currentPage,HttpServletResponse response) throws IOExceptionrn if("".equals(currentPage)||null==currentPage)rn currentPage="1";rn rn int totalRecord=bicycleServiceImpl.getTotalRecord();rn Page page=new Page(totalRecord, Integer.valueOf(currentPage), 15);rn Map map=new HashMap();rn map.put("page", page);rn List bicycleList=bicycleServiceImpl.getBicycleList(map);rn map.put("bicycleList", bicycleList);rn JSONObject jsonData=JSONObject.fromObject(map);rn return jsonData.toString();rn [/code]rnrn这是前台ajaxrn[code=java] $.ajax(rn url:"/BicycleSystem/getBicycleList.do",rn type:"post",rn dataType:"json",rn data:currentPage:"1",rn success:function(data)rn alert(data);rn alert(JSON.stringify(data));rn var newData=eval("("+data+")");rn alert(newData);rn rn )[/code]rnrn用Stringify()能解析出返回的数据,alert(JSON.stringify(data));能执行,拿到的数据也是后台返回的数据rn但是后面用eval()处理的数据没反应,alert(newData);根本就没执行,这是为啥rnrn
jquery ajax treeview 接收后台返回的json数据
我想做一个树型菜单 用jquery + treeview ,用ajax向后台请求一个servlet , 但是前台的脚本不会写 ,在网上找到一段代码 $("#navigation").treeview( rn url: "/tree"rn rn );rnrn 可是程序不调用这个servlet ,各位高手 帮帮忙
ajax struts 无刷新访问后台返回json数据
ajax struts 无刷新访问后台返回json数据,返回list、map,java类对象等json数据,前台js解析json数据,内有jar包,代码类。是一个完整的项目实例。
java ajax请求后台,返回JSON数据
后台使用JSONArray.fromObject(String),需要两个对象的json串,我现在是用String拼接格式完的json字符串,然后再用格式化这个拼接的串,然后用response.getWriter()往前台输出,但是现在前台接收到的json串数据不完整,求大神火速支援
ajax 跨域的几种解决办法
Request header field Content-Type is not allowed by Access-Control-Allow-Headers
ajax 跨域解决办法。
ajax 跨域解决办法。
什么是跨域,跨域解决办法
本来想转载一篇文章的,结果博主不让转载只能自己写一篇了! 1.什么是跨域 跨域,就是浏览器实行的一种保护措施,例如,你的网站的网址是 www.1234.com 那么你在这个网站里用javascript 调用其他网站中的接口,就会报跨域问题,记住,只要不是www.1234.com就会报跨域问题。还有就是相同域名不同端口也会报跨域问题 2.怎么解决跨域问题     (1)用jsonp   (
ajax 请求后台跨域
坑爹的问题 最近在项目中遇到一个跨域问题,坑了好久,查阅了很多资料终于解决了,特此记录。 问题描述 前端库我这边用的axios。后台是java。前台请求方法是post。token验证放在header里面传到后台。 前端代码如下: axios.defaults.baseURL = getAppParams().host; axios.defaults.headers.comm...
ajax后台跨域处理
response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); response.addHeader("Access-Control-Allow-Origin", "*"); PrintWriter writer = null; try { writer = response
django后台返回json数据
情景:当django后台响应前端的ajax请求时,最好的方法就是返回json格式数据,类数据无法直接返回,同样是需要转换为json数据。 例子: 前端html代码: <!-- 遍历ajax返回的数据,angularjs语法 --> ...
ajax获取后台的json数据
function getCity1(){           // var pcode=$('#hjszs1 option:selected') .val();             var obj11= document.getElementById("hjszs1");             var  city=document.getElementById("hj2")
ajax跨域问题返回json数据
跨域提交:【和普通的提交只是前台的jsonp和后台的返回方式稍微有点区别】 $.ajax({                 url:"http://localhost:8080/xxx.action",                 type:"get",                 dataType:"jsonp",  //数据格式设置为jsonp         ...
ajax返回json数据
-json的格式      {“属性名”:”属性值”,”属性名”:”属性值”,…}      json数据是原生态的数据,格式稳定,描述能力很强,因此经常用到。 -json扩展      如果服务器返回的是多组数据则返回的格式应当如下(php):      $res=”[{‘属性名’:’属性值’,…},{‘属性名’:’属性值’,…},…]”      在客户端接受到xmlhttprequ
ajax 自定义json数据返回
var obj = new             {                 success = success,                 errMsg = errMsg             };             var ret = JsonConvert.SerializeObject(obj);             Response.Content
ajax分页,json数据返回
jquery ajax请求,json返回数据到前台,无刷新的分页.
C# Ajax 返回json数据
前台调用 function checkLogin() { var name = $("#email").val(); var passward = $("#password").val(); $.ajax({ url: 'Ajax/web.ashx?method=login', type: '
ajax返回json数据问题
我的服务端是java,请求后服务端返回如下JSON格式的字符串数据:rnrn"aniFrames":["frameid":"137","ftime":"200","fwidth":"400","fheight":"400"] rnrn但之后就没反应了,我跟了一下,页面就只到了readystate为1的状态,就没有了,请教各位大侠是什么原因呢?
ajax返回json数据问题~~
用firebug得到的ajax响应是json格式数据:如下rn["start": "2010-07-14 00:00:00", "location": "Buffalo, NY", "image_url": "http://static.eventful.com/store/skin/no_image/categories/250x250/music_add.png", "id": 1787405333749526254, "title": "Warped Tour: Buffalo", "start": "2010-07-18 00:00:00", "location": " Napoli, NA Italy ", "image_url": "http://static.eventful.com/images/edpborder250/I0-001/002/750/249-8.jpeg", "id": 2208105860785750092, "title": "Dave Alvin"]rnrn上面的响应数据是对的,但是我在取得的数据中取到得值却是rndata[0].id=1787405333749526300rndata[1].id=2208105860785750000rn请高手解释一下问什么这样啊?rnrn下面是firebug的JSON格式:rn0rn Object start="2010-07-14 00:00:00", more...rnidrn 1787405333749526300rnimage_urlrn "http://static.eventful....s/250x250/music_add.png"rnlocationrn "Buffalo, NY"rnstartrn "2010-07-14 00:00:00"rntitlern "Warped Tour: Buffalo"rn1rn Object start="2010-07-18 00:00:00", more...rnidrn 2208105860785750000rnimage_urlrn "http://static.eventful....-001/002/750/249-8.jpeg"rnlocationrn " Napoli, NA Italy "rnstartrn "2010-07-18 00:00:00"rntitlern "Dave Alvin"rnrn
ajax返回json数据key值有双引号
导致不能直接解析,需要加上data = eval('(' + data + ')');解析
IE8、IE9 Ajax 跨域解决办法
解决ie8、9Ajax跨域问题(前端):jsp引入此js,Jquery Ajax正常写
接口返回json数据后台封装
今天说下json数据格式,规范的格式应该是包括数据返回状态(一般就是false/true),状态码(比如200,7000,这个都是自己定义的),消息(比如“获取数据成功”/“获取数据失败”),数据对象,以前写项目都是别人把方法写好,自己去调用,今天自己也写一个,其实很简单,老规矩直接上代码;首先定义返回实体Result,这里面重点看下里面的构造函数,用了的方法的重载package com.stev...
原生js的Ajax提交json数据到后台
原生ajax发送json数据到后台接收(将json转换为name=tom&pwd=123格式的字符串,简单,不在本次测试内),需要做到几点: 1,post方式发送。 2、json对象必须转换为json格式字符串 3、(setQequestHeader,可以默认或者application/json;) 4、后台接收,必须用request.getInputStream()方式。 SO
ajax向后台传递json数据
ajax向后台传递json数据,由于json数据的格式限定,所以变得ajax的参数不好写,下面看个例子: <script type="text/javascript">$(function (){var jsonStr = [ {'name' : 'jim','age' : 20}, {'name' : 'king','age' : 26}, {'name' : 'jge','a...
ThinkPHP Ajax 接收后台Json数据
ThinkPHP Ajax 接收后台Json数据JavaScript内容““html var URL='URL'; $.ajax({ url: URL+'/returnAjax',//提交访问的URL type: 'GET',//提交的方法 dataType: 'text
ajax后台应该返回什么类型
项目是spring mvc的,用ajax访问后台取出数据以后用什么类型的返回值可以对应的取出特定的数据啊,假设我要拿到的是一个model类型的数据,我前台怎么取出各个字段的值
跨域ajax请求和返回
===========我的需求:ajax跨域请求,并且返回结果集===================== 跨域这个问题困扰我很久,网上各种方法都有,什么get提交、jsonp... 首先我看了几个帖子,如下: http://blog.csdn.net/lazyyusky/article/details/48974335 帖子中详细的写了前台和后台代码如何写, 于是,我修改 1.
ajax请求返回json数据的问题
这个是界面。rn[code=javascript]rn rn[/code]rn这个是后台程序。rn[code=java]rn String country = request.getParameter("country");rn response.setContentType("text;charset=UTF-8");rn PrintWriter out = response.getWriter();rn JSONObject data = new JSONObject();rn data.put("0", "沈阳");rn data.put("1", "天津");rn data.put("2", "深圳");rn data.put("3", "大连");rn// String data2 = data.toString();rn// JSONObject data = JSONObject.fromObject(data2);rn out.print(data);rn System.out.println(data.get("0")+" 长度111: "+data.size());rn System.out.println("000 "+data);rn out.flush();rn out.close();rn[/code]rnrn现在界面alert(data);返回的是[object Object],长度为1.rn但是程序的后台返回的数据都正确,长度也为4.rn求帮助界面怎么能返回和后台相同的数据.不知道哪里错了.
ajax如何接收返回的json数据
服务器端:rnresponse.setContentType("application/json;charset=UTF-8");rnresponse.setCharacterEncoding("UTF-8");rnPrintWriter pw = response.getWriter();rnpw.write(retJSONString);rnrnrn前台页面:rnxmlHttp.open("POST", BeanName);rnxmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");rnxmlHttp.send(str);rn rn//ajax返回处理rnxmlHttp.onreadystatechange=function()rnif(xmlHttp.readyState==4 && xmlHttp.status==200)rn var jsonObj=eval(xmlHttp.responseText); //这样不行.......rn .....rn
jquery ajax json数据无法返回
按照网上的例子编了一段,但是只有数字可以返回,其他都不可以,也尝试更改了低版本的jquery,以及规范json数据格式,但是还是无法返回,后台可以读取rnrn rnrnrn rn rn 姓名:rn 内容:rn rn
Struts2与AJAX交互返回JSON数据
首先需要导入六个jar包 这是jsp代码 function queryData(pageNum) { $.ajax({ url:"queryNextPage", data:{ "pageNumber":pageNum },
jquery的ajax返回不了json数据
这是前端的js代码:rn[code=javascript]rn function getDataList(index) rn var pageIndex = index; rn $.ajax(rn type: "POST", rn url: "goods.php", rn data: "pageIndex="+pageIndex+'&items_per_page='+items_per_page, rn dataType: 'json', rn contentType: "application/x-www-form-urlencoded", rn success: function(msg) rn //alert('111');rn var total = msg.total; rn var html = ' '; rn $.each(msg.result,function(i,n) rn html += ' '+n[0]+' '+n[1]+''rn html += ' '+口味+''+山椒+' '+sd+''+n[2]+' 'rn ); rn html += ''; rn $('#comment_page').html(html); rn rn //分页-只初始化一次 rn if($("#Pagination").html().length == '') rn $("#Pagination").pagination(total, rn 'items_per_page' : items_per_page, rn 'num_display_entries' : 10, rn 'num_edge_entries' : 2, rn 'prev_text' : "上一页", rn 'next_text' : "下一页", rn 'callback' : pageselectCallback rn ); rn rn ,rn error: function()rn alert('111');rn rn ); rn rn[/code]rnrn这是后端的PHP代码:rn[code=php]rn //异步分页rn $page=mq::_p_nohtml('pageIndex');rn $items=mq::_p_nohtml('items_per_page');rn if($items)rn $members=$db->select('pro_comment','comment_buyer,comment_addtime,comment_intro')->get_array();rn $total = count($members);rn $pageIndex = $_POST['pageIndex'];rn $items_per_page = $_POST['items_per_page'];rnrn $result = array();rn $start = $pageIndex * $items_per_page;rn $end = ($pageIndex+1) * $items_per_page;rn if($end > $total)$end = $total;rn for($i = $start; $i < $end; $i++)rn $result[] = $members[$i];rn rn echo $r=json_encode($result);rn //print json_encode(array('total'=>$total,'result'=>$result)); rn rn// echo $members;rn// print_r($members);rnrn// exit;rn[/code]rnrn我想把result数据返回到前端接收,但是一直返回不了rnrn是有数据输出的但是没有返回到js,前端输出错误没有返回成功rn[img=https://img-bbs.csdn.net/upload/201410/21/1413879667_470509.jpg][/img]
jquery遍历ajax返回的json数据
jquery遍历ajax返回的json数据 我们以前在前端遍历ajax拿到的数据一般都是用for或其他方式遍历,这样做麻烦且费事,效率不高,下面提供一个函数,只需把此函数放到jquery文件中,调用函数即可把数据遍历出来,方便高效。
C# AJAX 返回json数据问题
![图片说明](https://img-ask.csdn.net/upload/201605/08/1462694504_873561.png)rnrn返回的json数据在末尾带上这一段信息,这是什么情况?
ajax请求接收返回json数据
基础$.ajax({ url : url, //要提交的URL路径 type : “get”, //发送请求的方式 data : data, //要发送到服务器的数据 dataType : “te
ajax请求、Servlet返回json数据
1、方式一 response.setContentType(&quot;text/html;charset=utf-8&quot;); response.setHeader(&quot;Cache-Control&quot;, &quot;no-cache&quot;); String str = &quot;{'msg':'成功','success':'true'}&quot;; out.print(str); out.flush(); out.clos...
解决Ajax返回的json数据乱码问题
有以下两种方式: 直接设置编码格式: response.setCharacterEncoding("utf-8"); 设置客户端浏览器的html的编码格式:response.setContentType("text/html; charset=utf-8");
有什么好的解决办法吗
我做的项目里有一个这样的功能rn需要客户点击后作为标记,然后记录下来rn可以是图片也可以是按钮,点击后变颜色。再次点击就恢复原色。结束之后把变颜色的记录下来rn用checkbox不好看,老板的意思是图片或者按钮的中心改变状态最好。整体最好是正方形的。checkbox的text在旁边不好看,如果在上边也勉强可以了rn我放了20多个按钮,点击就改变字体颜色,感觉太笨了。又不知道怎么做才更好rnrnrn各位有什么好的想法
ajax 跨域调用远程接口,获取json数据失败!
调用接口后的响应内容[img=https://img-bbs.csdn.net/upload/201609/12/1473651162_960937.png][/img] ,程序代码如下:rn$.ajax(rn //url在之前已拼接好rn //跨域请求的URL rn url:url,rn async: false, rn type : "get", rn dataType: "jsonp",rn contentType: "application/json;charset=UTF-8", rn error: function(XMLHttpRequest, textStatus, errorThrown) rn //200rn alert("status:"+XMLHttpRequest.status);rn //4rn alert("state:"+XMLHttpRequest.readyState);rn //parsererror 类型转换错误 rn alert("textstatus:"+textStatus);rn ,rn // 执行后的数据格式 "result":0,"data":"0","msg":"DEVICELOCK_STATUS0"rn success: function(json) rn for(var i in json)rn alert(i+":"+json[i]);rn rn rn );rn[color=#FF0000]代码无法执行到success,teststatus一直为parsererror。[/color]
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数