質問

こんにちは皆さん、ようにウィジェット、アップルのダッシュボードや思いに問題がようとしているデータからサーバーを使用jqueryのajax機能です。ここでの私のjavascriptコード:

$.getJSON("http://example.com/getData.php?act=data",function(json) { 
    $("#devMessage").html(json.message)
    if(json.version != version) {
        $("#latestVersion").css("color","red")
    }
    $("#latestVersion").html(json.version)
})

およびサーバーの反応がこのjson:

{"message":"Hello World","version":"1.0"}

何らかの理由が、この分野のウィジェットのない変化します。からのデバッグ、せっかくのウィジェットなものを請求をサーバーでの思いがリンゴなどの外部URLをブロックします。しかできない真のもので、多くのウィジェット電話用宅内へのアップデートの有無をチェック.

いいアイデアはどのようなきが悪いのでしょうか。

編集:また、このコードのコンビニエンスストアでアプローチにはサファリがあります。


ご要望によりLucaら、これがPHPとJavascriptのコード行っ

PHP:

echo $_GET["callback"].'({"message":"Hello World","version":"1.0"});';

Javascript:

function showBack(event)
{
var front = document.getElementById("front");
var back = document.getElementById("back");

if (window.widget) {
    widget.prepareForTransition("ToBack");
}

front.style.display = "none";
back.style.display = "block";
stopTime();
if (window.widget) {
    setTimeout('widget.performTransition();', 0);
}
$.getJSON('http://nakedsteve.com/data/the-button.php?callback=?',function(json) { 
    $("#devMessage").html(json.message)
    if(json.version != version) {
        $("#latestVersion").css("color","red")
    }
    $("#latestVersion").html(json.version)
})
}
役に立ちましたか?

解決

にDashcodeをクリック ウィジェットの属性 その るネットワークにアクセス 必ずオプションをチェックします。私は内蔵のものだけを拒否し、このたソリューションとなります。

他のヒント

クロスドメインAjaxをご希望の方にXMLHttpRequest/ActiveXオブジェクト)の現在のパスワードを入力してく当たりの W3C仕様:

本仕様書は含まない 以下の特徴を 考慮、将来のバージョンの この仕様:

  • クロスサイトXMLHttpRequest;

しかしが1技術の ajax ご要望のクロスドメイン JSONP, 他のスクリプトタグのページでは、ちょっとサーバの設定をします。

jQuery対応 この, で対応サーバとのこ

{"message":"Hello World","version":"1.0"}

また対応す:

myCallback({"message":"Hello World","version":"1.0"});

myCallback する必要の値の"コールバック関数"パラメータで渡されたの$.getJSON()機能です。だったのPHPを利用したこの作品:

echo $_GET["callback"].'({"message":"Hello World","version":"1.0"});';
  

アップルは、代わりに外部のURLブロックのいくつかの種類があります。

あなたのInfo.plistでは、trueに設定したキーAllowNetworkAccessを持っている必要があります。

<key>allowNetworkAccess</key>
<true/>

それはダッシュボードのサーバに拘束されていないので、あなたのコードは、Safariで動作し、それは基準が、それは、クロスサイトAJAXを許可しないことで準拠のではありません。それは、クロスサイトAJAXを許可しないことでFFは、標準準拠のISます。

ダッシュボードウィジェットを作成する場合は、

、なぜあなたはDashCodeのコードライブラリでのXMLHttpRequestのセットアップ機能を使用しないでください。 AppleはあなたがサードパーティのJSライブラリをインストールする必要はありませんでこれらを構築しました。私は、JSONのサポートについてはよく分からないが、おそらく、ここで開始することは、より良い方向にあなたを導くでしょう。

それはSafariで動作することを

興味深いです。私の知る限り、X-ドメインAJAXリクエストを行うために知っているあなたはJSONPデータ型を使用する必要があります。

http://docs.jquery.com/Ajax/jQuery.getJSONする

http://bob.pythonmac.org/アーカイブ/ 2005/12月5日/リモートJSON-JSONP /

基本的には、自動的に正しい方法の例と、それを置き換えますあなたのクエリ文字列とjQueryにcallback=?を追加する必要があります:

$.getJSON("http://example.com/getData.php?act=data&callback=?",function(){ ... });

編集:念のために、クエリ文字列の末尾にcallback=?ビットを置く。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top