1

ajaxとjqueryを使用して、リクエストをDELETE、PUT、GET、およびPOSTしようとしています。

メソッド POST は新しいレコードを作成することでうまく機能しますが、他のメソッド (PUT、DELETE、および GET) を機能させることはできません。

これはコードです (正常に動作し、新しいレコードを作成しますが、「成功」イベントには到達しません):

var jsonExample = {"advertisement":{"title":"test"}};

$.ajax({
            type: "POST",
            url: "http://example.com/advertisements.json",
            data:jsonExample,
            success: function(response){
                    alert("test");
            }
});

タイプ「POST」を「DELETE」または「PUT」に変更すると、次のエラーが発生します。

NetworkError: 404 が見つかりません

そして、「GET」に変更すると、次のメッセージがスローされます。

200OK

しかし、それ以外の応答はありません。次のようになります。

{"advertisement":{"created_at":"2012-04-17T13:20:17Z","from_age":null,"neighbourhood_id":null,"title":null,"date_to":null,"days":null,"promotion_id":null,"updated_at":"2012-04-17T13:20:17Z","date_from":null,"gender":null,"id":3,"display":null,"desc":null,"budget":null,"image":null,"to_age":null,"department_id":null,"town_id":null}}

注: 私のアプリはリモート サーバーからこの情報を取得していますが、それがこの問題と関係があるかどうかはわかりません。Google Chrome で実行したため、ブラウザのコンソールにAccess-Control-Allow-Originメッセージが表示されました。

何か案は?

4

1 に答える 1

2

セキュリティ上の理由から、jQuery を使用してクロスドメイン AJAX リクエストを行うことはできません。jsonpただし、データを要求している URL が要求を処理するように設定されていれば、使用できる場合がありjsonpます。

この記事は、私ができる以上に役立つはずです: http://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using-jsonp -jquery-and-php/

于 2012-04-17T19:58:40.223 に答える