URLリダイレクト
お世話になります。
xpaには、URLリダイレクトを行うための関数はありますでしょうか?
例えば下記の様にtestという公開名のバッチタイプのプログラムをブラウザからコールして、
http://localhost/Magic46Scripts/MGrqispi.dll?APPNAME=magic&PRGNAME=test
最終的に
にリダイレクトさせたい場合、プログラムtestの中から直接「https://www.yahoo.co.jp」にリダイレクトを行う関数もしくは方法はありますでしょうか?
HTMLテンプレートを用意して、リクエスタを通じてマージを行い、そのHTMLにJavaScriptでリダイレクト命令を記述する方法などはわかりますが、HTMLやJavaScriptを使用することなく、MAGICのプログラムの中でリダイレクトを行う方法はありますでしょうか?
素人質問で申し訳ありません。
-
コメントされているように、HTMLに直接記述すればいいと思うのですが、あえてタスクに埋め込みたいというのは、何か特別な理由があるのでしょうか?
-
ご返答ありがとうございます。
理由は、処理を簡素化させたいといったところになります。
HTMLを作成して配置してマージして、中にJavaScriptを記述するといった部分をタスクの中でクローズできれば、処理を簡素化でき管理も楽になると考えております。
他の言語には、リダイレクト処理があるのにXPAではできないの?といった素朴な疑問もあります。
XPAには各種HTTP関数群がありますが、どの関数のリファレンスを見てもリダイレクトの文献を見つけることができませんでした。
-
試したわけではないのですが、リダイレクト先のURLをMGタグでテンプレートに送るだけで済みそうな気もしますが。。
ちなみに、Magicの過去のバージョンにはHTMLエディタの機能を備えていたバージョンもあったのですが、かえって煩わしいということで、すべてカットされてしまいました。
Magicにおけるマージ機能は、極端にいうとデータベースとのやり取りの部分だけの役割を果たしています。あとは、htmlとcssでお好きに料理してくださいといったスタンスですね。
-
ご返信ありがとうございます。
やはり、Magicには、転送系の関数が無いのですね。
それらを踏まえて、不本意ではありますが、リクエストされた際のレスポンスのステータスとヘッダーの内容を書き換えて対応することにいたしました。
タスクの後処理でアクション処理により、レスポンスのステータスを301リダイレクト、ヘッダーのロケーションを転送させたいURLに書き換えて処理を実現いたしました。
RqHTTPStatusCode(301,'Moved Permanently')
RqHTTPHeader('Location: https://www.yahoo.co.jp/')これにより、HTMLやスクリプトを使用することなく転送処理を行うことができますので、とりあえあずは、この形で様子見をしてみたいと思います。
-
Magicの「マージ機能」は、その名前のとおり、データとHTMLを単に「マージする」だけの機能ですから、それ以上のことを行おうとするのであれば、マージではなく、MagicのWebClient機能を使われてはいかがでしょうか?
WebClientはAngularのJavaScriptフレームワークを使用しますので、普段からWebを中心にやられている方には、こちらのほうが合っているかもしれませんね。
なお、HTMLやCSSも面倒だという方には、さらにMagicの「リッチクライアント機能」が用意されています。ユーザの好みに合わせて、3種類のWebアプリの作法に対応していますから、お好きなソリューションが選べますよ。
-
ご返信ありがとうございます。
WebClientは経験が皆無ですので、勉強するタイミングができたら、触ってみたいと思います。
リッチクライアントに関しましては、ライセンスの関係上、使用することはないかと思われます。
-
WebClientはすでにライセンスをお持ちですか?実行ライセンスは、WebClientもリッチクライアントも別売です。
-
P.S.
デバッグ実行までなら、Magic開発版だけで、「オンラインタスク」、「リッチクライアントタスク」、「Web Client」タスクのいずれも開発が可能ですよ。
-
ちなみに、WebClientは正式リリースが2020年ですから、今年で3年目です。yamaguchiさんに合っていると思いますよ。ぜひ、試してみてください。
-
ご返信ありがとうございます。
検討してみたいと思います。
サインインしてコメントを残してください。
コメント
10件のコメント