Как отправить svg в ajax запросе на сервер django?
На сайте есть canvas созданный на fabric.js. Мне нужно отправить svg этого холста на сервер с django, сохранить в базе данных mysql и создать pdf файл на основе svg.
На данных момент не получается отправить svg получаю ошибку:
Not Found: /save_svg
[23/Jan/2022 10:48:21] "GET /save_svg?svg_text=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%20%3F%3E%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22219.21259842519686%22%20height%3D%22151.18110236220474%22%20viewBox%3D%220%200%20219.21%20151.18%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cdesc%3ECreated%20with%20Fabric.js%204.6.0%3C%2Fdesc%3E%0A%3Cdefs%3E%0A%3C%2Fdefs%3E%0A%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22white%22%3E%3C%2Frect%3E%0A%3C%2Fsvg%3E HTTP/1.1" 404 3146
Вот мой код
- Ajax запрос:
function save(){
svg_text = canvas.toSVG();
console.log(svg_text);
$.ajax({
type: 'GET',
url: '/save_svg/',
data: {
'svg_text': svg_text
},
success: function(response){
console.log(response)
},
error: function(response){
console.log(response)
}
})
}
- urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.editor, name='editor'),
path('save_svg/', views.save_svg, name='save_svg'),
]
- views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Label
def editor(request):
return render(request, 'editor/editor.html')
def save_svg(request):
if request.method == 'GET' and request.is_ajax():
result = request.GET.get('svg_text', None)
Label.title = result.save()
return HttpResponse("Success!", status=200)
return HttpResponse("Fail!", status=400)
- models.py
from django.db import models
class Label(models.Model):
svg = models.TextField(max_length=1000)
def __str__(self):
return self.svg
- html
<form method="get">
<button class="btn" onclick="save()" title="Сохранить"><i class="far fa-save"></i></button>
</form>