ExtJS(クライアント)とFlask (サーバー)を使用してRESTfulアプリケーションを開発しています。クライアントとサーバーはプロトコルによってリンクされています。
次のように、サーバーに対してAJAXリクエストを実行しようとすると問題が発生します。
Ext.Ajax.request ({
url: 'http://localhost:5000/user/update/' + userId ,
method: 'POST' ,
xmlData: xmlUser ,
disableCaching: false ,
headers: {
'Content-Type': 'application/xml'
} ,
success: function (res) {
// something here
} ,
failure: function (res) {
// something here
}
});
上記のリクエストで、クライアントはユーザー情報を更新しようとしています。 残念ながら、これはクロスドメインリクエストです(詳細)。
サーバーはその要求を次のように処理します。
@app.route ("/user/update/<user_id>", methods=['GET', 'POST'])
def user_update (user_id):
return user_id
ブラウザコンソールに表示されるのは、OPTIONS
ではなくリクエストですPOST
。次に、80ポートでFlaskアプリケーションを起動しようとしましたが、それは不可能です。
app.run (host="127.0.0.1", port=80)
結論として、AJAX要求を実行できない場合に、クライアントがサーバーと対話する方法がわかりません。
この問題を回避するにはどうすればよいですか?