2010-01-16 133 views
0

我有一個Django服務器,它處理對URL的請求,該URL將返回一些用於圖像庫的HTML。我可以導航到URL並且瀏覽器將顯示返回的HTML,但是我無法通過對相同的URL執行AJAX調用(使用jQuery)來獲取相同的HTML。Ajax請求沒有從Django接收xml

這是產生響應的觀點:

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 /月/ 2010 17時34分10秒]「 GET /galleryimages /網絡HTTP/1.1" 200 215

這是因爲當我做AJAX調用服務器日誌條目:

[16 /月/ 2010 - 17:36: 19]「選項 /galleryimages/Web HTTP/1.1「200 215

爲什麼AJAX請求不能獲取我的Django頁面正在提供的xml?

+0

爲什麼指定你發送XML(然後發送一個不正確的XML文檔,一個缺乏頂層元素),當jQuery的'load'被設計爲接收HTML和它它似乎是你發送的HTML?我懷疑這是造成這個奇怪的HTTP OPTIONS請求的原因,也就是你的問題,但它確實無法幫助,並且使問題複雜化到沒有好的結果(瀏覽器被設計爲非常容忍不良數據,所以它不好測試數據在其中一箇中是否可見;-)。 – 2010-01-17 00:05:05

+0

啊謝謝!這可能是第一步讓這個工作。 我已經將mimetype更改爲text/html,但不幸的是,ajax請求仍然作爲OPTIONS方法出現,並且它沒有收到任何內容。 – ampersandre 2010-01-17 00:22:30

+0

如果你拿出整個mimetype部分,它是否工作? – 2010-03-16 13:29:53

回答

0

你想指定mimetype='application/xml'