首页 > Web开发 > 详细

jQuery解决ajax请求的跨域问题

时间:2017-03-25 15:53:30      阅读:476      评论:0      收藏:0      [点我收藏+]

这两天工作中频繁的遇到JS的跨域问题,都通过绕开ajax请求的方式。特地百度了一下,把跨域问题解决了。在这分析一下

首先贴上js的页面代码:

<html>
	<head>
		<title>cross domain</title>
		<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
        <script type="text/javascript">
			function corssDomain(){
				 $.ajax({
					url:"http://127.0.0.1:8080/DailyStudy/daily/info",
					type:"get",
					success:function(data){
					  alert(data.name);
					},
					dataType:"jsonp",
					jsonpCallback:"method"
				  });
			}
			
			window.onload = function(){
				corssDomain();
			};
            
        </script>
	</head>

</html>

  看到网上的很多说法,用JSONP可以解决跨越问题,不过在回调函数里面,一直拿不到JSON格式的数据,页面的报错信息跟下面的图一样技术分享

上网查资料发现,请求方式里添加JSONP字段解决跨域问题后,数据的格式却不能是Json的。后台服务返回的数据格式必须是jsonpCallback的值加一对括号,括号里面是json数据。这样才可而已正常解析。我没改动之前的返回数据是这样的{"key":"20170325","name":"pony"},改动之后是这样的method({"key":"20170325","name":"pony"})。附上后台的改动代码:

public String dailyInfo()throws Exception{
		JSONObject json = new JSONObject();
		json.put("key", "20170325");
		json.put("name", "pony");
		//return json.toJSONString() ;		改动前
		return "method(" + json.toJSONString() + ")";	//改动后
	}

  再进行测试技术分享

  这样就可以获取到json数据了。

  

jQuery解决ajax请求的跨域问题

原文:http://www.cnblogs.com/duck-ifox/p/6617012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!