Файл обновления Alfresco - ОШИБКА POST
Я пытаюсь обновить файл в Alfresco ... И я делаю этот код:
var csrf_header = Alfresco.util.CSRFPolicy.getHeader();
var csrf_token = Alfresco.util.CSRFPolicy.getToken();
function getResponse(pdfbase64) {
var fd = new FormData();
if (Alfresco.util.CSRFPolicy && Alfresco.util.CSRFPolicy.isFilterEnabled())
{
fd.append(csrf_header, csrf_token);
}
fd.append("username", "admin");
fd.append("updatenoderef", nodeRef);
fd.append("filedata", pdfbase64);
fd.append("majorversion", "true");
fd.append("overwrite", "true");
alert(fileUpdateURL);
$.ajax({
url: fileUpdateURL,
type: "POST",
data: fd,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
});
}
Переменнаяpdfbase64
это содержимое для файла (изменения, которые я внес в файл для обновления файла в base64), но, возможно, это неправильный формат ?,nodeRef
ссылка на файл, например:"workspace://SpacesStore/4fb1b7e7-2502-4011-8870-17e8d626b93b"
а такжеfileUpdateURL
этоURL
вPOST
: http://localhost:8080/share/proxy/alfresco/api/upload
Я получил ошибку:
СООБЩЕНИЕHTTP: // локальный: 8080 / доля / прокси / под открытым небом / API / загрузки 500 - внутренняя ошибка сервера
javax.servlet.ServletException: возможная атака CSRF, отмеченная при сравнении токена в сеансе и параметре запроса. Запрос: POST / share / proxy / alfresco / api / upload на org.alfresco.web.site.servlet.CSRFFilter $ AssertTokenAction.run (CSRFFilter.java:845) на org.alfresco.web.site.servlet.CSRFFilter.doFilter (CSRFFilter.java:312) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChag.j). web.site.servlet.SSOAuthenticationFilter.doFilter (SSOAuthenticationFilter.java:447)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:208) в org.alfiteco.web .doFilter (MTAuthenticationFilter.java:74) по адресу org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:241) по адресу org.apache.catalina.core.ApplicationFilterChain.doFilter: org (8) (приложение) apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:220) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:122) в org.apache.catalaseAventhentic Java: 504) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:170) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103) в org.apache.cat .AccessLogValve.invoke (AccessLogValve.java:950) в org.apa che.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:116) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:421) в org.apache.coyote.http11.AcessorHortp11 Java: 1074) в org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:611) в org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.doRun (AprEndpoint.java:2466) в org.apache .tomcat.util.net.AprEndpoint $ SocketProcessor.run (AprEndpoint.java:2455) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor .java: 617) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) в java.lang.Thread.run (Thread.java:745)
РЕДАКТИРОВАТЬ: если я использую
HTTP: // локальный: 8080 / под открытым небом / сервис / API / загрузки
вместо
HTTP: // локальный: 8080 / доля / прокси / под открытым небом / API / загрузки
Я получаю ошибку:
{
"status" :
{
"code" : 400,
"name" : "Bad Request",
"description" : "Request sent by the client was syntactically incorrect."
},
"message" : "Required parameters are missing",
"exception" : "",
"callstack" :
[
],
"server" : "Community v5.0.0 (d r99759-b2) schema 8,022",
"time" : "Jan 24, 2016 1:14:41 PM"
}
Может кто-нибудь мне помочь?
EDIT2:
Я пытаюсь сделать запрос сHTTP: // локальный: 8080 / доля / прокси / под открытым небом / API / загрузки с этим:
function getResponse(pdfbase64) {
var csrf_header = Alfresco.util.CSRFPolicy.getHeader();
var csrf_token = Alfresco.util.CSRFPolicy.getToken();
var fd = new FormData();
if (Alfresco.util.CSRFPolicy && Alfresco.util.CSRFPolicy.isFilterEnabled())
{
fd.append(csrf_header, csrf_token);
fileUpdateURL += "?" + Alfresco.util.CSRFPolicy.getParameter() + "=" + encodeURIComponent(Alfresco.util.CSRFPolicy.getToken());
}
fd.append("username", "admin");
fd.append("updatenoderef", nodeRef);
fd.append("filedata", pdfbase64);
fd.append("majorversion", "true");
fd.append("overwrite", "true");
alert(fileUpdateURL);
$.ajax({
url: fileUpdateURL,
type: "POST",
data: fd,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
});
}
Но я получаю ошибку:
{
"status" :
{
"code" : 400,
"name" : "Bad Request",
"description" : "Request sent by the client was syntactically incorrect."
},
"message" : "Required parameters are missing",
"exception" : "",
"callstack" :
[
],
"server" : "Community v5.0.0 (d r99759-b2) schema 8,022",
"time" : "Jan 24, 2016 1:14:41 PM"
}