I've embedded the following javascript in an HTML macro in an attempt to automatically update one or more Confluence pages upon the submission of a form. The code can successfully Get the body of the page(s) that I want to update, but something seems to be going wrong in the $.ajax section when making a PUT request with the updated body back to the target url. I'm currently not getting a "Success!!!" alert and the page isn't getting updated. I'm using Confluence Server. Does anyone have some insight?
<script>src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"</script>
<script>
function makeJSON(){
var users_name = document.getElementById("users_name").value;
var email = document.getElementById("email").value;
inputs = document.getElementsByTagName('select');
for (i=0; i<inputs.length; i++) {
input = inputs[i];
if (input.value >= 1 && input.value <= 5) {
var skillString = " " + users_name + " (" + input.value + ") - " + email
var skillName = input.name
$.get('/rest/api/content?spaceKey=EXPERTISE&title='+ skillName + '&expand=space,body.view,version,container', function(data, status){
var response = JSON.stringify(data);
var parsedData = JSON.parse(response);
// Not having a var in front of page_id, page_body, version, etc makes these variables global
page_id = parsedData.results[0].id;
page_body = parsedData.results[0].body.view.value
version = parsedData.results[0].version.number
});
page_body += skillString;
$.ajax({
type: "PUT",
url: "/rest/api/content/" + page_id,
data: JSON.stringify(skillString),
contentType:"application/json; charset=utf-8",
success: function (data) {
$("p").prepend(JSON.stringify(page_body));
alert("Success!!!")
}
});
}
}
}
</script>
<form onSubmit="makeJSON()" action="/rest/api/content" method="PUT">