1

私はトリッキーな問題に直面しています: ng フォーム内にアクション属性を持つ古いスタイルのフォームを作成する必要があります。

私がこれを行っている理由は、古いスタイルのフォームからの POST リクエストが別の Web サイトに送られ、ユーザーが POST リクエストの結果 (実際には新しいページで) に「リダイレクト」される必要があるためです (これにより、ログインする)。

JavaScript から古いスタイルのフォームをシミュレートできますが、ブラウザーのポップアップ ブロッカーがそれをキャッチし、リンクをクリックするのと同じくらい簡単でなければなりません。

フレームワークに由来するため、外側の ng-form には触れられません。

だから私が持っているものは次のとおりです:

<div ng-form>
...
...
  <form action="old_website.com/index.php" method="post" target="_blank">
    <input type="hidden" name="field1" value="value1">
    <input type="submit" value="Submit">
  </form>
...
...
</div>

これを機能させる方法が見つかりません:)お役に立てば幸いです。

[編集]わかりました、私はばかだと思います。ブラウザのポップアップブロッカーに問題なく、フォームをシミュレートして送信する関数を呼び出すボタンを使用できるようです...

また、Firefox では動作しないようです。

私がやっていることは次のとおりです。

HTML:
<button ng-click="submitForm()">Submit</button>

JS:
$scope.submitForm = function() {
  var form = $('<form>', {
    action: 'old_website.com/index.php',
    type: 'post',
    target: '_blank'
  });
  form.append($('<input>', {name: 'field1', value: 'value1'}));
  form.submit();
}
4

1 に答える 1