我有一個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?
爲什麼指定你發送XML(然後發送一個不正確的XML文檔,一個缺乏頂層元素),當jQuery的'load'被設計爲接收HTML和它它似乎是你發送的HTML?我懷疑這是造成這個奇怪的HTTP OPTIONS請求的原因,也就是你的問題,但它確實無法幫助,並且使問題複雜化到沒有好的結果(瀏覽器被設計爲非常容忍不良數據,所以它不好測試數據在其中一箇中是否可見;-)。 – 2010-01-17 00:05:05
啊謝謝!這可能是第一步讓這個工作。 我已經將mimetype更改爲text/html,但不幸的是,ajax請求仍然作爲OPTIONS方法出現,並且它沒有收到任何內容。 – ampersandre 2010-01-17 00:22:30
如果你拿出整個mimetype部分,它是否工作? – 2010-03-16 13:29:53