Search code examples
javascriptpythonjquerydjangohttp-status-code-404

Javascript parse URL as parameter for $.getJSON


I'm trying to parse an URL as paramter together with multiple others in my frontend to send a JSON request to my Django backend, but I receive the well known 404 error - not found.

Django urls.py path:

path("updateAssignment/<iD>/<body>/<deadline>/<user>/<url>/<game>/<aK>/<seoTitle>/<payment>/<wordCount>/<category>/<state>/", Dashboard.update_assignment, name="updateAssignment")

Javascript $.getJSON Request

function updateAssignment(assignmentId){

const assignmentUpdateEndpoint = "/updateAssignment/";



let body =  encodeURIComponent(document.getElementById("Assignment-Body"+assignmentId).value);
let deadline =  encodeURIComponent(document.getElementById("Assignment-Deadline"+assignmentId).value);
let user =  encodeURIComponent(document.getElementById("Assignment-User"+assignmentId).value);
let url =   encodeURIComponent(document.getElementById("Assignment-URL"+assignmentId).value);
let game =  encodeURIComponent(document.getElementById("Assignment-Game"+assignmentId).value);
let additionalKeywords =  encodeURIComponent(document.getElementById("Assignment-Additional-Keywords"+assignmentId).value);
let seoTitle =  encodeURIComponent(document.getElementById("Assignment-SEOtitle"+assignmentId).value);
let payment =  encodeURIComponent(document.getElementById("Assignment-Payment"+assignmentId).value);
let wordCount =  encodeURIComponent(document.getElementById("Assignment-WordCount"+assignmentId).value);
let category =  encodeURIComponent(document.getElementById("Assignment-Category"+assignmentId).value);
let state =  encodeURIComponent(document.getElementById("Assignment-State"+assignmentId).value);
assignmentId = encodeURIComponent(assignmentId);

let reqUrl = assignmentUpdateEndpoint +  assignmentId + "/" + body + "/" + deadline +"/" + user + "/" + url + "/" + game + "/" + additionalKeywords + "/" + seoTitle + "/"  + payment + "/" +  wordCount + "/" + category + "/" + state + "/";

$.getJSON(reqUrl).done((response) => {
    
});

The request only throws an error when a real URL gets parsed, thus the issue must related to it & how it gets encoded I guess. Help would be great.


Solution

  • Fixed it by using $.ajax instead of $.getJSON.

    $.ajax({
      type: "get",
      url: endpoint,
      data: {},
      sucess: (response) => {
        
      }});
      

    transmits the data in the right format to the server.