0

sencha touch で json フィードを取得しようとするたびに、常にこのエラーが発生します。

XMLHttpRequest cannot load http://api.example.com/index.php/news/all/format/json?_dc=1342630239638&node=root. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers.

どうすればこれを回避できますか? 本当に sencha で作業したいのですが、私の作業のほとんどは json フィードで作業することになりますか???

どんな助けでも

また、私のjson出力はこのように見えますが、rootpropertyノードはありませんか??

[{
    "id": "7253",
    "title": "hello",
    "description": "",
    "source": "syrianews",
    "cat_name": "Syrianews"
}, {
    "id": "7208",
    "title": "hello",
    "description": "",
    "source": "syrianews",
    "cat_name": "Syrianews"
}]
4

2 に答える 2

0

Sencha はそのような非ルート レスポンスを読み取ることができますか?

[{ "id": "7253", "title": "こんにちは", "説明": "", "source": "syrianews", "cat_name": "Syrianews" }, { "id": "7208" , "タイトル": "こんにちは", "説明": "", "ソース": "シリアニュース", "cat_name": "シリアニュース" }]

于 2012-08-11T15:05:49.480 に答える
0

許可されていないクロスドメイン Ajax リクエストを実行しようとしているようです。Ajax リクエストには、同じドメイン、同じポート、同じプロトコルのセキュリティ要件があります。たとえばhttp://www.tinyfactory.co/からアプリをロードしてから、 http://api.example.com/にAjax リクエストを送信しようとすると、セキュリティ サンドボックスはそれを許可しません。

しかし、希望はあります。JSONP を入力します。JSONP またはパディングされた JSON (http://en.wikipedia.org/wiki/JSONP) は、データを要求しているドメインがうまく機能する場合に、このセキュリティ ポリシーをバイパスする方法です。通常、API には「callback」という名前のパラメーターが表示されます。これが行うことは、宣言した Javascript 関数でデータをラップすることです。例えば:

http://api.example.com/datafeed.json?callback=foo

データを返します

foo({fName: 'Alex', lName: 'Rolek'});

JSONP は、コールバック要求変数で要求している API に設定された「src」属性を使用してスクリプト タグを DOM に動的に挿入することにより、これを実現できます。API が応答を返すと、関数「foo」がアプリケーションで呼び出され、応答データの処理を開始できます。

Sencha Touch で、次のように変更します。

proxy: 'ajax'

proxy: 'jsonp'

ご要望に応じて。API がコールバックを受け入れる限り、Sencha Touch は残りの面倒な作業を行います。

詳細については、以下をご覧ください。

http://docs.sencha.com/touch/2-0/#!/api/Ext.data.proxy.JsonP

お役に立てれば。

于 2012-07-18T18:44:27.410 に答える