Webブラウザ(chrome/safari)からDjango Restフレームワークにパッチリクエストを送信します。 Google ChromeでAPI(https://test.mysite.com/cart/)が起動されたときに、Djangoバックエンドのデータrequest.data
の値にアクセスしようとしましたが、データを読み取ることができます。django REST APIでrequest.dataが空ですAngularJSを使用してSafariからPATCHリクエストをリクエストしました
var order = {};
order.num_cases = 8;
var absloutePatchURL = '/cart/'+order.cartID;
window.console.log('Update cart absolute URL:',absloutePatchURL);
$http.patch(absloutePatchURL,order, {data:JSON}). success(function(data, status, headers, config) {
window.console.log("Your cart is updated successfully");
}).error(function(data, status, headers, config) {
toastr.error('Sorry, unable to update your item to the cart. Please try later.');
});
要求の詳細:
URL: https://test.mysite.com/cart/
Request Type: PATCH
Request Data: {"num_cases":6}
同じPATCH要求はサファリからトリガーされたときしかし、ブラウザが(空として示して)私のカートのAPIを呼び出すために
JSをrequest.dataを与えるものではありません
DjangoのリクエストオブジェクトでPDBから要求されたデータにアクセス中です。 Accessへ
ジャンゴコード:Chromeから要求された
class CartViewSet(CartMixin, ModelViewSet):
def update(self, request, *args, **kwargs):
import pdb
pdb.set_trace()
logger.debug("Request Data: {0}".format(request.data))
return ModelViewSet.update(self, request, *args, **kwargs)
Djangoのコンソールログ:SAFARIから要求された
-> return ModelViewSet.update(self, request, *args, **kwargs)
(Pdb)
(Pdb) request.data
<QueryDict: {u'{"num_cases":8}': [u'']}>
Djangoのコンソールログ:
<QueryDict: {}>
(Pdb) request.data
<QueryDict: {}>
また、この操作をどのようにトリガーするかについてコードを示す必要があります。ブラウザはネイティブにPATCHを送信しないので、カスタムコードが必要です。 –
より多くのコードスナップショット追加で詳細を更新しました。あなたの考えを助けてください。 – thatzprem
@Alasdair - コードを更新しました – thatzprem