私はクロスドメインリクエストを送信するためにExt.Ajax.request
(ExtJS 3を使用)と思われるスクリプトを使用しています。 ExtJS3(おそらくExtJSから離れる可能性があります)から離れていくための検討が行われていますが、XMLHttpRequest
を使用する際の迅速な試みは機能しませんでした。これらのクロスドメイン要求を送信するためにどのようなテクニックが使用されているのかを知るにはどうすればよいですか?Ext.Ajax.requestを使用するクロスエンゲージメントクロスドメインPOSTリクエスト
答えて
あなたは jQueryの例JSONPを使用しようとすることができます:
$.ajax({
url: "test.php",
dataType: "jsonp"
success: function(data){
console.log(data)
}
});
をそれとも、要求されたコンテンツへのアクセス権を持っている場合は、アクセス制御 - 許可 - 起源ヘッダーを設定することができます。 PHPの例:
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
Ext JS 3.4 online documentationはExt.Ajax.request
メソッド呼び出しにソースコードの相関を追跡するために使用することができExt.Ajax
クラスの継承モデルを提供します。しかし、ホイールを再作成するのに時間とリソースを費やすのではなく、ネイティブExt JS Ext.data.ScriptTagProxy
クラスを既存のストアにproxy
設定オプションを使用して実装することをお勧めします。以下は私が言及しているものの省略例です。
例
var myJsonStore = new Ext.data.JsonStore
({
autoLoad : true,
proxy : new Ext.data.ScriptTagProxy
({
url : 'http://www.cross-domain.com/file.php'
}),
fields : ['myIdColumn','myCharColumn','myDateColumn']
});
ADDITION
あなたは離れてのExt JSを使用してACD (AJAX Cross Domain)ライブラリをチェックアウトしてくださいからの移動にいきますので。
私は現在ExtJS 3.3.1を使用していますが、私はまだ4への切り替えを行っていませんが、新しいプロジェクトが来るときにはおそらくそうです。 Extソースを見ることなく、彼らがJSONPを使ってこのタスクを達成していると言えるでしょう。JavaScriptがsame-origin policyを守らなければならないので、クロスドメインAJAX呼び出しを行う唯一の方法です。
JSONPの純粋なJS実装をしようとしていますか?または、既にJSライブラリを使用していますか?私たちのコメントパー
編集
...彼らは、POSTリクエストを作っています。これはJSONPでは不可能です。だから私が言うことができる限り、彼らはiframe
のトリッキーを使用しています。それは古いブラウザでファイルをアップロードするのと同じトリックです。
Thisリンクはこれをより詳しく説明しています。
Valum's file uploaderでも同じ方法(iframe to、POST、ファイルをアップロード)が使用されています。 ExtJSソースに従う方がはるかに簡単です。
しかし、JSONPを使ってPOSTリクエストを送信できますか?私はFirebugのネットワークアクティビティを見ていて、ページはクロスドメインPOSTリクエストを送信しています –
今私は興味があります... JSONPはGET要求のみを送信できると仮定します。私は掘りに行きます。 –
あなたと私の両方の男! –
JSONPは少しハックですが、使用できます。
ただし、交差するドメインを制御する場合は、CORSを使用することを検討してください。 CORSでは、Webサイトからの応答にヘッダー(Access-Control-Allow-Origin)を挿入します。http://enable-cors.org/
これはIE 8+(Firefox、WebKitブラウザ)でサポートされています。IEの注意点は次のとおりです.IISは、CORS要求に対して異なる要求オブジェクト(XDomainRequest)を使用します。 Operaをサポートする必要がある場合は、JSONPまたはpolyfill(フラッシュが必要なhttps://github.com/gimite/web-socket-js/のようなもの)を使用する必要があります。
問題のドメインを管理していない場合は、CORSをサポートするように依頼できます。
- 1. Ext.Ajax.requestのPOST?
- 2. HTTP POSTリクエスト(Volleyを使用)
- 3. SeleniumテストでPOSTリクエストを使用する
- 4. Ext.Ajax.requestを使用してセッションタイムアウトを表示
- 5. JSON POSTリクエストの使用
- 6. Pythonを使用したXML POST RESTリクエスト
- 7. Guzzle Laravel - POSTリクエストを使用してログイン
- 8. Fetch APIを使用したPOSTリクエスト?
- 9. jQueryを使用したAJAX POSTリクエスト
- 10. Gracenote RhythmAPIリクエスト(POSTメソッドを使用)
- 11. JSONを使用したHTTP POSTリクエスト
- 12. Ext.Ajax.requestを使用してセッションクッキーを取得する方法ExtJS 6.2
- 13. POSTリクエスト(リクエストとpython3)を使用して連絡フォームを送信
- 14. Pythonリクエストを使用してこのPOSTリクエストを行う方法
- 15. Pythonリクエストの使用:セッション、Cookie、POST
- 16. Unity:JSONを使用したWWWクラスを使用したPOSTリクエスト
- 17. POST HTTPリクエストを使用してAsanaタスクを作成する
- 18. Dojo:dojo.io.iframe.sendを使用してPOSTリクエストを送信する方法
- 19. パラメータを使用してPOST/GETリクエストをリダイレクトするSinatraアプリ
- 20. Alamofireを使用してAPIにPOSTリクエストを送信する
- 21. javaクライアントで@POSTリクエストを使用してパラメータを送信する
- 22. pcapを使用してPOSTリクエストをフィルタリングする方法は?
- 23. Node.jsを使用してPOSTリクエストを送信する
- 24. Thymeleafフォームを使用してPOSTリクエストを作成する
- 25. php postのリクエストを使用してmysqlテーブルを更新する
- 26. DjangoテストクライアントがPOSTリクエストを使用してフォームを送信する
- 27. ASIHTTPRequestを使用してiPhoneでPOSTリクエストを送信する。1.6.2
- 28. バイナリデータを使用してPHP POSTリクエストを作成する
- 29. FlutterでPOSTリクエストを使用してファイルをアップロードする
- 30. json4sを使用してPOSTリクエストでJSONデータを処理する
しかし、私はExtJSの使用をやめようとしています...これはExtJSを使い続けることを示唆していませんか? –
必ずしもそうではありません。 Ext JS 3.4のオンラインドキュメントを使って、 'Ext.Ajax'クラス継承モデルとその基礎となる' request'メソッドロジックを見直してみることをお勧めします。そこから開始し、継承階層を理解することで、ツリーを簡単にたどることができ、スーパークラスのメソッドとクロスドメイン要求を容易にするロジックを識別し、レビューすることができます。私の例は誤解されている可能性がありますが、あなたが探しているものが見つかる可能性が高い特定の 'Ext.data.ScriptTagProxy'クラスをヒントすることを意図していました。 –
クロスドメインサポートを提供する非常に簡単で軽量なJavaScript AJAXライブラリをぜひお試しください。自国のソリューションの作成時に設定されている場合は、ライブラリ自体を使用することも、ソースコードを参照として使用することもできます。 –