Je suis un débutant dans un Knockout.js et j'ai un problème avec l'envoi de données au serveur. Sur mon arrière-je REST service:Knockout.js envoie des données JSON étrangement formatées
@POST
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Path("/smth")
public Response smth(MyObj[] values) {
return Response.ok().build();
}
Où objet MyObj est:
@XmlRootElement
public class MyObj {
@XmlAttribute
private String linkName;
@XmlAttribute
private String linkedIssueKey;
public MyObj (String linkName, String linkedKey) {
this.linkName = linkName;
this.linkedIssueKey = linkedKey;
}
public MyObj() {
}
public String getLinkName() {
return linkName;
}
public String getLinkedIssueKey() {
return linkedIssueKey;
}
public void setLinkedIssueKey(String linkedIssueKey) {
this.linkedIssueKey = linkedIssueKey;
}
public void setLinkName(String linkName) {
this.linkName = linkName;
}
@Override
public String toString() {
return "MyObj{" +
"linkName='" + linkName + '\'' +
", linkedIssueKey='" + linkedIssueKey + '\'' +
'}';
}
Et le problème est que j'obtiens l'erreur 415 Type de non prise en charge des médias lors de l'envoi de données à l'aide de knock-out .js:
ko.utils.postJson("/smth", ko.toJSON(data));
Où données est définie de la manière suivante : ko.observableArray([]);
Et peuplé d'objets Tâche:
function Task(data){
this.linkName = ko.observable(data.linkName);
this.linkedIssueKey = ko.observable(data.linkedIssueKey).extend({
required: true
});
}
Et en regardant dans les données de formulaire dans une information d'en-tête, je vois que Knockout.js envoie des données d'une manière très bizarre (partie du formulaire de données a été omis, car il est trop long):
la question est comment puis-je résoudre ce problème et pourquoi cela se produit?
P.S. Le service REST back-end fonctionne correctement. Testé avec l'expéditeur de la demande REST en envoyant la demande suivante:
[{"linkName":"yo","linkedIssueKey":"zopa"},
{"linkName":"yo","linkedIssueKey":"zopa"}]
Eh bien, maintenant au moins le formulaire de données est joli, mais je continue à avoir la même erreur. Je suppose que cela se produit parce que le Content-Type est text/html, mais devrait être: application/json –