メインコンテンツへスキップ

URLリダイレクト

コメント

10件のコメント

  • Tanda

    コメントされているように、HTMLに直接記述すればいいと思うのですが、あえてタスクに埋め込みたいというのは、何か特別な理由があるのでしょうか?

  • yamaguchi

    ご返答ありがとうございます。

    理由は、処理を簡素化させたいといったところになります。

    HTMLを作成して配置してマージして、中にJavaScriptを記述するといった部分をタスクの中でクローズできれば、処理を簡素化でき管理も楽になると考えております。

    他の言語には、リダイレクト処理があるのにXPAではできないの?といった素朴な疑問もあります。

    XPAには各種HTTP関数群がありますが、どの関数のリファレンスを見てもリダイレクトの文献を見つけることができませんでした。

  • Tanda

    試したわけではないのですが、リダイレクト先のURLをMGタグでテンプレートに送るだけで済みそうな気もしますが。。

    ちなみに、Magicの過去のバージョンにはHTMLエディタの機能を備えていたバージョンもあったのですが、かえって煩わしいということで、すべてカットされてしまいました。

    Magicにおけるマージ機能は、極端にいうとデータベースとのやり取りの部分だけの役割を果たしています。あとは、htmlとcssでお好きに料理してくださいといったスタンスですね。

  • yamaguchi

    ご返信ありがとうございます。

    やはり、Magicには、転送系の関数が無いのですね。

    それらを踏まえて、不本意ではありますが、リクエストされた際のレスポンスのステータスとヘッダーの内容を書き換えて対応することにいたしました。

    タスクの後処理でアクション処理により、レスポンスのステータスを301リダイレクト、ヘッダーのロケーションを転送させたいURLに書き換えて処理を実現いたしました。

    RqHTTPStatusCode(301,'Moved Permanently')
    RqHTTPHeader('Location: https://www.yahoo.co.jp/')

    これにより、HTMLやスクリプトを使用することなく転送処理を行うことができますので、とりあえあずは、この形で様子見をしてみたいと思います。

  • Tanda

    Magicの「マージ機能」は、その名前のとおり、データとHTMLを単に「マージする」だけの機能ですから、それ以上のことを行おうとするのであれば、マージではなく、MagicのWebClient機能を使われてはいかがでしょうか?

    WebClientはAngularのJavaScriptフレームワークを使用しますので、普段からWebを中心にやられている方には、こちらのほうが合っているかもしれませんね。

    なお、HTMLやCSSも面倒だという方には、さらにMagicの「リッチクライアント機能」が用意されています。ユーザの好みに合わせて、3種類のWebアプリの作法に対応していますから、お好きなソリューションが選べますよ。

  • yamaguchi

    ご返信ありがとうございます。

    WebClientは経験が皆無ですので、勉強するタイミングができたら、触ってみたいと思います。

    リッチクライアントに関しましては、ライセンスの関係上、使用することはないかと思われます。

  • Tanda

    WebClientはすでにライセンスをお持ちですか?実行ライセンスは、WebClientもリッチクライアントも別売です。

  • Tanda

    P.S.

    デバッグ実行までなら、Magic開発版だけで、「オンラインタスク」、「リッチクライアントタスク」、「Web Client」タスクのいずれも開発が可能ですよ。

  • Tanda

    ちなみに、WebClientは正式リリースが2020年ですから、今年で3年目です。yamaguchiさんに合っていると思いますよ。ぜひ、試してみてください。

  • yamaguchi

    ご返信ありがとうございます。

    検討してみたいと思います。

サインインしてコメントを残してください。