ホームページ > バックエンド開発 > PHPチュートリアル > 同じJSON文字列を入力したのにjqueryの処理結果が異なるのはなぜですか?

同じJSON文字列を入力したのにjqueryの処理結果が異なるのはなぜですか?

WBOY
リリース: 2016-06-23 13:31:44
オリジナル
1085 人が閲覧しました

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+='';*/
orderDishStr+="

';
}
$("#orderDishList").append(orderDishStr);
}else{
alert("読み込み領域にデータがありません!")
}
}); 2 つの異なる URL を実行すると同じ JSON 文字列が返されますが、最初の URL は実行されず、2 番目の 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が二重に付与されていませんか?


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 回割り当てることはできますか?

2 つの URL がテストされます。実行後、2 つの URL は同じ JSON 文字列を出力しますが、正常に実行できるのは 1 つの URL だけです。テストするときは URL をコメントアウトします

キー名 (URL) は同じです、後者は前者を上書きします、もちろん 1 つだけが実行されます


誤解をして申し訳ありません、 js、これはクロスドメインの問題です

しますインターフェイスを提供します サーバーにクロスドメイン コードを追加します

header("Access-Control-Allow-Origin: *"); ページのドメイン名とインターフェイスのドメイン名が同じ場合、データを取得できる場合は、クロスドメイン コードを追加する必要があります。私が書いたのは 1 つだけです。インターネット上には同じキー名 (URL) を持つものがたくさんあり、後者は上書きします。前者は、もちろん



の 1 つだけが実行される可能性があります。おそらく表現が間違っています。実行する場合、両方が実行されるのではなく、別々に実行されます。一方を実行するときに、もう一方をコメントアウトしますが、2 つの URL のうち 1 つしか実行できません。これはクロスドメインの問題のはずですが、1 つの URL しか正常に実行できません。 2 つの URL によってスローされる json 文字列は同じです。

これはサーバー側でしか連携できないようですが、js だけでは一方的に処理できないようです

サーバーにヘッダーの追加を依頼してください

自分のサーバーでない場合は、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 をスローし、実行されません。これはクロスドメインの問題であるはずですが、このヘッダー ステートメントを追加しても機能しません。

2 番目の 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 コールバック関数をコールバックする必要があります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート