20101208

Jetzt will ich mal folgendes Problem angehen:

  1. Einfügen Upload: er wird jetzt gespeichert, aber danach wird das Insert-Fenster nicht geschlossen, sondern stattdessen kommt ein Speichern-Dialog des Browsers “You have chosen to open UploadsByPerson which is a text/json” Firebug meldet auch noch in der Console:

    uncaught exception: [Exception… “Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMIMEInfo.primaryExtension]” nsresult: “0xc1f30001 (NS_ERROR_NOT_INITIALIZED)” location: “JS frame :: chrome://dotnetassistant/content/contenttype.js :: anonymous :: line 44” data: no]

Das sind möglicherweise mehrere Probleme zugleich…

Welchen Mimetype für eine JSON-Antwort? bisher war text/json, aber laut https://stackoverflow.com/questions/477816/the-right-json-content-type sollte es besser application/json sein.

Irgendwie kommt Djangos HttpResponse scheinbar manchmal zu dem Schluss, dass der JSON-String, den ich ihr gebe ({ message: “Upload #5 (dnsconfig2_2.jpg) wurde gespeichert.”, success: true }) nochmal in ein <pre style=”word-wrap: break-word; white-space: pre-wrap;”>…</pre> eingepackt werden muss.

Sieht aus als würde Ext.data.Connection im Fall von file uploads irgendwas am request verändern, was dazu führt dass der Browser so reagiert. Genau: Ext.data.Connection verändert im Fall von file uploads sogar sehr viel am request: da wird eine eigene Methode doFormUpload aufgerufen, die irgendwann auch form.submit() abfeuert, wobei form ein http://www.sencha.com/deploy/dev/docs/?class=Ext.Element ist.

Hier hat jemand wahrscheinlich das gleiche Problem wie ich. Und eine Antwort lautet “Typically you’re not going to return Json to the user’s browser directly through a normal form submittal… “.

Oh je, Problem noch lange nicht gelöst! Und jetzt muss ich Feierabend machen… Das wird Ticket docs/tickets/18