ホームページ >バックエンド開発 >PHPチュートリアル >php+jqueryのクロスドメイン送信問題、嫌いじゃないよ、たったの20点

php+jqueryのクロスドメイン送信問題、嫌いじゃないよ、たったの20点

WBOY
WBOYオリジナル
2016-06-23 14:24:52879ブラウズ

1: ドメイン A サーバーの出力 json は次のとおりです

$test = "{name:\"John\", message:\"hello John\"}";echo $test;

2: ドメイン B のサーバー プログラムは次のとおりです
function sendEmail() {	var orderingId = $("#orderingId").val();	 alert(orderingId);	 $.ajax({		 type: "get",		 url:"http://www.testB.com/cronemail/cron_expressmail.php?orderingid=2222",		 cache : false, 		 dataType : "jsonp",		 jsonp: "callbackfun",		 jsonpCallback:"jsonpCallback",                 success:function (json) {			alert(json.message);		}	 })}

ただし、ページにはエラーが表示されます:
ユーザー エージェント: Mozilla/4.0 (互換性、MSIE 7.0; Windows NT 6.0、Trident/4.0、.NET CLR 2.0.50727、.NET CLR 3.5.30729)
タイムスタンプ: 2013 年 10 月 22 日 10:48:39 UTCメッセージ:スクリプト エラー
行数: 0
文字数: 0
コード: 0
URI: http://www.test.com/cronemail/cron_expressmail.php?orderingid=2222&callbackfun=jsonpCallback&_=1382438914750


ディスカッションへの返信 (解決策)


ajax はドメインを越えることができません、これは議論の余地のない事実です

実際、あなたのコードは形式上のみクロスドメインです

a657e17fa5bf7d6524f557ffd88296453fa3f474cbb4b6d948eebecb1be5dde4

したがって、URL は正当な JS ステートメントを返す必要があります
JSON 文字列だけでは十分ではありません

$test = "{name:\"John\", message:\"hello John\"}";echo $_GET['callbackfun'].'('.$test.')';

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。