0

Web ページにリンクを作成しようとしています。アクセスすると、通常とは異なるメソッドで HTTP リクエストが送信されます (例のために、メソッドはPOSTS です)。通常の HTML フォームは GET と POST のみをサポートし、AJAX は PUT と削除をサポートする必要があることを知っています。これらの標準の HTTP メソッドとは異なるメソッドでリクエストを発行する方法はありますか? 前もって感謝します。

==============

ヒントの後、次の HTML を持つようにページを調整しました。

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $.ajax({url:"http://www.example.php",type:"POSTS",dataType:"html"});
  });
});
</script>
</head>
<body>
<button>Send Request</button>
</body>
</html>

驚いたことに、これは Chrome と Firefox では機能しませんでしたが、更新されたバージョンの IE では機能しました: Firefox と Chrome を使用してリクエストを発行しようとすると、ブラウザは OPTIONS メソッドと次のヘッダーを持つリクエストを発行しました:

Access-Control-Request-Method: POSTS

IE のみが要件に従ってリクエストを発行しました - POSTS HTTP メソッドを使用します。

===

前述の HTML が機能しないことが判明しました (カスタム ヘッダーを使用した目的のリクエストは発行されません)。上で述べたように、firefox と chrome は Access-Control-Request-Method ヘッダーを含む最初のリクエストを発行しますが、IE はリクエストをまったく発行しません。ブラウザのセキュリティ設定を調整しました(「ドメイン間でデータソースにアクセスする」を有効にしました)が、それでもブラウザはリクエストを発行しませんでした。ブラウザの設定をさらに調整する必要があると思います。解決できますか?

4

1 に答える 1

0

JavaScript を使用している場合は、簡単に「はい」と答えてください。

メソッドは、ステータス コードとともに標準で定義されていますが、拡張可能です。メソッド語彙を増やす webdav など。

すべてのブラウザーが任意の http メソッド、特に古いバージョンの IE をサポートしているわけではありません (驚き!)

したがって、http リクエストを作成する JavaScript 関数を呼び出すリンク/ボタンを単純に持つことができます。

jQueryを使用するだけです:

var request = $.ajax({
  url: "script.php",
  type: "POSTS",
  data: { id : menuId },
  dataType: "html"
});

request.done(function( msg ) {
  $( "#log" ).html( msg );
});

request.fail(function( jqXHR, textStatus ) {
  alert( "Request failed: " + textStatus );
});
于 2013-12-06T16:21:25.737 に答える