2017-09-06 12 views
0

別のhtmlページにdjango形式を埋め込もうとしましたが、何も動作しません。私は他のジャンゴサイトを試しました。しかし、非作品。他のサイトでもテストされています。 djangoブロックをiframeで使用するのですか?どのように動作させるには? Programming competition formDjangoのサイトが別のHTMLの中に埋め込まれていないのはなぜですか? - iframe?

テンプレート埋め込むことが必要 フォーム:それは内部の境界線と何を与える

<html> 
<iframe frameborder="1" src="http://form.classof20.cf/Programming_Competition/"></iframe> 
</html> 

<form method="post"> 
    {% csrf_token %} 
    <b>{{form.as_p}}</b> 
    <input type="submit" value="Submit" title="Submit" /> 
</form> 

はとして埋め込むようにしてください。ここで

+1

たぶん他のサイトが埋め込まれることを望んでいない。このような場合のために、あなたは、ヘッダーを設定しないようミドルウェアに指示 ビューデコレータを使用することができます。それがあなたのサイトではない場合、あなたはどのように動作するかを制御することはできません。 – tadman

+0

私のサイトと私はそれを埋め込みたい。どうすればいいですか? –

+1

作成したコードが問題を引き起こしていることを示す必要があります。何が間違っているのか推測できません。 – tadman

答えて

1

は、あなたのHTMLをロードしようとした後、WebKitのインスペクタでエラーです:

Refused to display 'http://form.classof20.cf/Programming_Competition/' in a frame because it set 'X-Frame-Options' to 'sameorigin'. 
Failed to load resource: net::ERR_BLOCKED_BY_RESPONSE 

そして実際、ここでのレスポンスヘッダのダンプがカールによってです:だから

$ curl -I http://form.classof20.cf/Programming_Competition/ 

HTTP/1.1 200 OK 
Server: nginx/1.10.3 (Ubuntu) 
Date: Wed, 06 Sep 2017 19:44:16 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 765 
Connection: keep-alive 
Vary: Cookie 
X-Frame-Options: SAMEORIGIN 
Set-Cookie: csrftoken=UJZltdTzJMe6961QMNRSgZ7vKWa1vUEf2lEB8lmaaZXgROf1zyALsuwsKpvtcby6; expires=Wed, 05-Sep-2018 19:44:16 GMT; Max-Age=31449600; Path=/ 

、どこそれがありませんから来る ?それはDjango clickjacking protectionから来ます。

ソリューション0:

X-Frame-Options: ALLOW-FROM http://your-other-site-which-embeds/ 

解決方法1:つまり、あなたのジャンゴ応答allows your other site in X-Frame-Options、確認してください

のミドルウェアを使用して、いくつかのビューところがあるかもしれない:クリックジャッキング保護からフォームビューを免除 にX-Frame-Optionsヘッダーセットが必要ではありません。

from django.http import HttpResponse 
from django.views.decorators.clickjacking import xframe_options_exempt 

@xframe_options_exempt 
def ok_to_load_in_a_frame(request): 
    return HttpResponse("This page is safe to load in a frame on any site.") 
+0

ありがとう!それは動作し、これはDjangoと関係しています。:) –

関連する問題