0

画像ギャラリーで使用する HTML を返す URL への要求を処理する Django サーバーがあります。URL に移動すると、返された HTML がブラウザーに表示されますが、同じ URL に対して (jQuery を使用して) AJAX 呼び出しを行っても、同じ HTML を取得できません。

これは、応答を生成するビューです。

def gallery_images(request, gallery_name):
    return render_to_response('galleryimages.html', {'images': get_images_of_gallery(gallery_name)}, mimetype='text/xml')

これは「galleryimages.html」テンプレートです:

{% for image in images %}
<div id="{{image.name}}big">
    <div class="actualImage" style="background-image:url({{image.image.name}});">
        <h1>{{image.caption|safe}}</h1>
    </div>
</div>
{% endfor %}

これは私が行っているjQuery呼び出しです:

$("#allImages").load("http://localhost:8000/galleryimages/Web");

ただし、これは #allImages div には何もロードしません。firebug を使用して jQuery の Ajax メソッド .get(" http://localhost:8000/galleryimages/Web ") を実行したところ、firebug は応答テキストが完全に空であると言っています。

Django サーバーのログを確認すると、ブラウザーから手動で URL に移動したときに表示されるエントリは次のとおりです。

[16/Jan/2010 17:34:10] "GET /galleryimages/Web HTTP/1.1" 200 215

これは、AJAX 呼び出しを行ったときのサーバー ログのエントリです。

[16/Jan/2010 17:36:19] "オプション /galleryimages/Web HTTP/1.1" 200 215

Django ページが提供している xml を AJAX リクエストが取得しないのはなぜですか?

4

2 に答える 2

0

問題は、リクエストした URL が別のドメインにあることに JQuery が気づき、クロスドメイン スクリプティングを停止しようとして、GET リクエストを OPTION リクエストに変換したことでした。

これに対する解決策は、クエリ パラメータとして URL を受け入れる PHP ページを作成し、AJAX 要求をこの PHP プロキシ ページに送信することでした。プロキシ ページは、渡された URL をプルダウンして送り返します。

(こちらをご覧ください: http://www.abdulqabiz.com/blog/archives/2007/05/31/php-proxy-script-for-cross-domain-requests/ )

于 2011-02-10T22:08:22.240 に答える
0

を指定しますmimetype='application/xml'

于 2010-01-17T06:44:44.657 に答える