输入相同的JSON串为啥jquery处理结果不一样

dongzuowei 2015-07-01 04:46:47
function getOrderDishArea(){
$("#orderDishList").text('');
//var area;
//if(getItem("areaName")==null){
// area='hefei';
//}else{
// area=getItem("areaName")
//}
document.getElementById('order_dish_info_panel').style.display = 'none';
$.jsonP({
url:'http://shegoushop.com/app/ceshi.php?m=ClientApp&a=getArea&city_domain=hefei',
url:'http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei',

success:function(data){
alert("OK!");
if(data['msg']=="success" && data['data']!=null){

$('#order_dish_area_info_loading').hide();

var orderDishStr='';
var jsondata=data['data'];

for(var i=0;i<jsondata.length;i++){
var sum=i+1;
/*orderDishStr+='<span class="qiz"><img src="images/qiz.png"></span>';*/
orderDishStr+="<div class=\"w_right \"><ul class=\"right_li\"><a href=\"#\" onclick=\"switchTab('tab"+sum+"','con"+sum+"',"+jsondata[i].sortid+",'"+sum+"')\"><li id=\"tab"+sum+"\" onclick=\"setItem('super_shop_sid','"+jsondata[i].sortid+"')\"><span class=\"qiz\"><img src=\"images/qiz.png\"></span>";
orderDishStr+="<span class=\"area_name f1\">";
orderDishStr+=''+jsondata[i].sortname+'</span><span class="fr">营业中</span></li></a><div class=\"floatc_con\" id=\"orderDishAreaInfo'+sum+'\"></div></ul></div>';
}
$("#orderDishList").append(orderDishStr);
}else{
alert("加载区域没有数据!");
}
}
});
}

如以上所示,执行两个不同的URL,返回相同的JSON串,但是第一个URL不执行,第二个URL可以执行。
...全文
213 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongzuowei 2015-07-01
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
<?php
header("Access-Control-Allow-Origin: *");
?>
<script src=scripts/jquery-1.8.3.min.js></script>
<script>
$(function() {
  $.get('http://shegoushop.com/app/ceshi.php?m=ClientApp&a=getArea&city_domain=hefei', function(d) { $('#a').html('a'+d); });
  $.get('http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei', function(d) { $('#b').html('b'+d); });
});
</script>
<div id='a'>A</div>
<div id='b'>B</div>
已经顺利解决,这个jqmobi的JSON跨域,服务器端回调即可。服务器端直接输出JSON是不行的,要回调JS回调函数。
xuzuning 2015-07-01
  • 打赏
  • 举报
回复
Access-Control-Allow-Origin: * 需要每个页面都有
xuzuning 2015-07-01
  • 打赏
  • 举报
回复
<?php
header("Access-Control-Allow-Origin: *");
?>
<script src=scripts/jquery-1.8.3.min.js></script>
<script>
$(function() {
$.get('http://shegoushop.com/app/ceshi.php?m=ClientApp&a=getArea&city_domain=hefei', function(d) { $('#a').html('a'+d); });
$.get('http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei', function(d) { $('#b').html('b'+d); });
});
</script>
<div id='a'>A</div>
<div id='b'>B</div>
xuzuning 2015-07-01
  • 打赏
  • 举报
回复
<?php
header("Access-Control-Allow-Origin: *");
?>
<script src=scripts/jquery-1.8.3.min.js></script>
<script>
$(function() {
$.get('http://shegoushop.com/app/ceshi.php?m=ClientApp&a=getArea&city_domain=hefei', function(d) { $('#a').html('a'+d); });
$.get('http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei', function(d) { $('#b').html('b'+d); });
});
</script>
<div id='a'>A</div>
<div id='b'>B</div>
dongzuowei 2015-07-01
  • 打赏
  • 举报
回复
执行第二个URL: 执行第一个URL:
dongzuowei 2015-07-01
  • 打赏
  • 举报
回复
引用 4 楼 oZhangYanHe 的回复:
不好意思理解错了, js你这个是跨域的问题 叫给你提供接口的人在服务端加段跨域代码 header("Access-Control-Allow-Origin: *");
测试了,php服务器端加上header("Access-Control-Allow-Origin: *"); 也不行。不知道url:'http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei'为啥可以执行,测试的php文件抛出一样的JSON也不执行。应该是跨域问题,但是加这个header声明不管用。
small虾米 2015-07-01
  • 打赏
  • 举报
回复
如果不是自己的服务端,就只有在自己的服务端做个file_get_content();了
small虾米 2015-07-01
  • 打赏
  • 举报
回复
这个好像只能服务端配合吧,只是js单方好像处理不了 叫服务端给加个header
dongzuowei 2015-07-01
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
键名(url)相同,后者把前者覆盖了,当然只会执行一个
可能我表达错了,执行时不是执行俩,是分别执行。执行一个时注释掉另一个,但是两个URL只有一个能够执行,应该是跨域问题,不知道怎么处理的,只有一个URL能够执行成功,但是俩URL抛出的json串是一样的。
small虾米 2015-07-01
  • 打赏
  • 举报
回复
你这个页面的域名和接口域名相同就能获得数据,不同的话需要加跨域的代码,我写的这个只是一种, 网上很多的
small虾米 2015-07-01
  • 打赏
  • 举报
回复
不好意思理解错了, js你这个是跨域的问题 叫给你提供接口的人在服务端加段跨域代码 header("Access-Control-Allow-Origin: *");
xuzuning 2015-07-01
  • 打赏
  • 举报
回复
键名(url)相同,后者把前者覆盖了,当然只会执行一个
dongzuowei 2015-07-01
  • 打赏
  • 举报
回复
引用 1 楼 oZhangYanHe 的回复:
url:'http://shegoushop.com/app/ceshi.php?m=ClientApp&a=getArea&city_domain=hefei', url:'http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei', success:function(data){} 这是什么用法 jsonP({})这个方法的参数是json格式吧,json格式可以给一个键名url赋值2次吗?
两个URL是测试的,这两个URL执行后输出相同的JSON字符串,但是只有一个URL是可以执行成功的,不知道为什么?测试时注释掉一个URL
small虾米 2015-07-01
  • 打赏
  • 举报
回复
url:'http://shegoushop.com/app/ceshi.php?m=ClientApp&a=getArea&city_domain=hefei', url:'http://public.6tie.com/index.php?m=ClientApp&a=getArea&city_domain=hefei', success:function(data){} 这是什么用法 jsonP({})这个方法的参数是json格式吧,json格式可以给一个键名url赋值2次吗?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧