首頁  >  文章  >  後端開發  >  输入相同的JSON串为啥jquery处理结果不一样

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

WBOY
WBOY原創
2016-06-23 13:31:441051瀏覽

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 var sum=i+1;
/*orderDishStr+='输入相同的JSON串为啥jquery处理结果不一样';*/
orderDishStr+="

';
}
$("#orderDishList").append(orderDishStr);
}else{
alert("加载区域没有数据!");
}
}
});
}

如以上所示,执行两个不同的URL,返回相同的JSON串,但是第一个URL不执行,第二个URL可以执行。


回复讨论(解决方案)

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:'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

键名(url)相同,后者把前者覆盖了,当然只会执行一个

不好意思理解错了,
js你这个是跨域的问题
叫给你提供接口的人在服务端加段跨域代码
header("Access-Control-Allow-Origin: *");

你这个页面的域名和接口域名相同就能获得数据,不同的话需要加跨域的代码,我写的这个只是一种, 网上很多的

键名(url)相同,后者把前者覆盖了,当然只会执行一个



可能我表达错了,执行时不是执行俩,是分别执行。执行一个时注释掉另一个,但是两个URL只有一个能够执行,应该是跨域问题,不知道怎么处理的,只有一个URL能够执行成功,但是俩URL抛出的json串是一样的。

这个好像只能服务端配合吧,只是js单方好像处理不了
叫服务端给加个header

如果不是自己的服务端,就只有在自己的服务端做个file_get_content();了

不好意思理解错了,
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声明不管用。

执行第二个URL:

执行第一个URL:

<?phpheader("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>

<?phpheader("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>

Access-Control-Allow-Origin: *
需要每个页面都有

<?phpheader("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回调函数。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn