1

レストサーバーに ajax リクエストを送信しようとしています:

<script>
var id = "104";
var postData = {
  'id' : id
};
AJS.$.ajax({
     url: "myurl",
     crossDomain: true,
     data: postData,
     type: "DELETE",
     // dataType: "json",
     success: function(msg, textStatus, jqXHR) {
        alert( "Data Saved: " + msg);
     }
});
</script>

しかし、次のエラーが表示されます: XMLHttpRequest は http://myurl/rest/controller/resource/id/107 をロードできません。メソッド DELETE は、Access-Control-Allow-Methods では許可されていません。

PHPコントローラーの上部に次を追加しました。

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers', 'x-requested-with');

受け入れられる唯一のメソッドは get と post ですが、delete と put はエラーを作成します。

何か案は?

ありがとう、ジェームズ

4

1 に答える 1

0

先日、ほぼすべてのブラウザーからクロスドメインの ajax リクエストを実行することはほとんど不可能であることを苦労して学びました。代わりに、サーバー側で HTTP リクエストのリダイレクトを処理します。この ajax リクエストを同じ URL/サーバー上のスクリプトに送信し、そのスクリプトに HTTP リクエストを実行させ、データを取得しようとしている他のサーバーからのデータを待機させます。

于 2012-11-11T23:40:10.593 に答える