私はdjangoビューにデータを投稿するために使用しているワードプレスサイト(PHPでコーディングされています)を持っています。私はしかし、私はまだこれを受け、このコードcsrf_exemptデコレータは免除されていません
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'https://mydjangosite.com/blah/blah2/');
機能私は、このインスタンスで
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
@api_wrapper
def add_referral_api(request, status_slug):
をクロスサイトポストを許可するため、上記のURLは@csrf_exempt
デコレータを使用しているために行くに投稿しますログにエラーがあります
[03/Feb/2017 18:17:48] WARNING [django.request:177] Forbidden (CSRF cookie not set.):
信頼済みサイト間でこのようなクロスサイトポスティングを許可するにはどうすればよいですか?
EDIT 私のミドルウェアクラスも同様です。このサイトはssl証明書を使用していますので、それが価値あるものであることを覚えておいてください。余分なセキュリティによってcsrf_exemption
デコレータがうまく動作しない可能性があります。それでも、私はこの1つのサイト(私のWPサイト)が投稿データを受け取っても大丈夫だと言うことができると思います。
MIDDLEWARE_CLASSES = (
# This middleware is for ensuring that all pages use https
#'djangosecure.middleware.SecurityMiddleware',
'django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'common.middleware.XsSharing',
'impersonate.middleware.ImpersonateMiddleware',
'referrals.middleware.ReferralMiddleware',
)
"api_wrapper"とは何ですか?このビューがヒットしたと確信していますか? –
はい。それは、情報を投稿してレコードをデータベースに追加することです。 –
'CSRF_COOKIE_SECURE'設定が' True'に設定されていますか? –