わかりました、基本的に私がやろうとしているのは、クライアントのサイトの下部にキャッチフレーズを含めることができるように、javascript のクロスドメイン/同一オリジンの制限をバイパスすることです (それは私たちのサーバーでホストされており、代わりに 1 か所で更新できます)。 100 万のサイトを更新すること)。JSONPを使用してjqでこれを行いたいと思います。キャッチフレーズを表示するページに入る私のコードは次のとおりです。
<div id="tagline"></div>
<script type="text/javascript">
$(document).ready(function() {
var url = "http://www.mydomain2.com/api/tagline.php";
$.getJSON(url + "?callback=taglineDisp", null, function(taglineDisp) {
for(i in taglineDisp) {
payload = taglineDisp[i];
$("#tagline").append(payload.text);
}
});
});
</script>
tagline.php の内容は次のとおりです。
<?php header('Access-Control-Allow-Origin: *'); ?>
<?PHP echo "taglineDisp({\"tagline\" : \"Powered by <strong><a href='http://www.mydomain2.com'>Company Name</a></strong>\"}); ";
もともと tagline.php は動的ではなく、tagline.json にこれを入れただけです。
taglineDisp({"tagline" : "Powered by <strong><a href='http://www.mydomain2.com'>Company Name</a></strong>"});
そうですよね?JSONP には taglineDisp(); が必要です。JSON オブジェクトをラップしますよね?
最初は典型的な起点制限エラーが発生していましたが、.php に変更して "Access-Control-Allow-Origin: *" ヘッダー ディレクティブを追加すると、次のようになりました。
Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains. oauth:1
私の説明とコード サンプルが問題ないことを願っています。私は膨大な数の JSON 記事を読みました (SO と他のサイトの両方で -- IBM は実際には JSON に関する優れたリソースもいくつか持っています) が、どこが間違っているのかまだわかりません。私は主に jq noob です。:\
このすべての作業はそれだけの価値がありますか? iframe は私の頭痛の種を救ってくれますか? jq は、追加のリソース オーバーヘッドを犠牲にして、ブラウザー間の互換性を確保するのに適しているのではないかと考えました。:|