2

私がAPIを打ったとき:

どのように私は(Angularアプリからではなく)APIを打つことができますか:

apiadress/エンドポイント/idnumber/?param=param

DELETE を使用すると、すべてが正常に機能し、期待どおりに機能します。しかし、次のようにRestangularからそうすると:

Restangular.one("endpoint").customDELETE(idnumber,params)

サーバーから次の応答が返されます。

"detail": "サポートされていないメディア タイプ 'text/plain;charset=UTF-8' が要求されています."

DELETE が BODY と共にサーバーに送信されているように見えますが、空の本体を強制する方法が見つかりません。

(これは他の質問で見たので、前もって言いますが、そうです、APIは私の開発マシンの別のポートにあり、私は持っています:

config(['$httpProvider', function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }
    ])

私は Restangular が好きですが、この問題に悩まされ続けています。ありがとう!

4

3 に答える 3

5

あなたの問題はコンテンツタイプであり、リクエストに本文がないということではありません。(少なくとも私はあなたの質問からそれを読みました。)

Restangular でも使用する必要があるデフォルトのコンテンツ タイプ ヘッダーを定義してみてください。

RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
于 2013-10-23T09:50:57.823 に答える
1

customDelete でリクエスト ペイロードを追加する場合は、これを使用する必要があります。

Restangular.all('path').customDELETE('', {}, {}, payloadObject);

*これはペイロード パラメータを URL に追加しません。このメソッドはペイロード オブジェクトを本文に追加します。

于 2017-12-21T00:55:34.267 に答える