en chrome, cela fait un HTTP, tout comme il devrait, mais dans Firefox 21, il ne le fait pas. Il n'y a pas d'erreurs dans la console JavaScript ou dans le backend.
Voici le HTML: P>
$("#createTeamButton").click(function () { var teamObject = new Team(); teamObject.description = $("#teamName").val(); teamObject.businessSize = $("#businessSizeSelect").val(); teamObject.businessType = $("#businessTypeSelect").val(); teamObject.businessLocation = $("#businessLocationSelect").val(); $.ajax({ type: "PUT", url: "/ajax/rest/team", dataType: "json", data: JSON.stringify(teamObject), success: function () { // Reload the team select box loadTeamSelectBox(); // Pop up the site create modal $('#createSiteModal').foundation('reveal', 'open'); }, error: ajaxErrorHandler }); });
Ces sites réaffirment que la mise en place peut ne pas fonctionner dans tous les navigateurs, mais devrait fonctionner à FF. P>
Enfin, j'ai appuyé sur la suite avec FF21 et mettre des travaux p>
Je pourrais certainement l'ingénieur autour de cela, mais il me semble que cela devrait fonctionner. Je préférerais ne pas jerry-plate-forme quelque chose, mais plutôt obtenir de JQuery .ajax de travailler correctement. P>
Autres détails: * jQuery version 2.0.0 * Le backend est Spring3 P>
[Modifier pour ajouter le HTML] P> P>
4 Réponses :
Je pense qu'il vous manque peut-être quelque chose d'autre - ce jsfiddle fait une demande de vente sur le plus récent chrome et Firefox 21:
Je ne peux pas réaliser votre réclamation sur Firefox 21.0 sous Windows, lorsque je vais à Google.com et appuyez sur F12 (Firebug) puis exécutez le code suivant:
var s = document.createElement("script"); s.src="http://code.jquery.com/jquery-1.9.1.js"; document.body.appendChild(s); //allow some time to load and then run this $.ajax({ type: "PUT", url: "/search", dataType: "json", data: JSON.stringify({hi:"there"}), success: function (data) { console.log(data); }, error: function(e) { console.log(e); } });
Vous ne spécifiez pas quel type de contenu vous envoyez au serveur. J'ai eu un problème similaire où le serveur n'a même pas essayé de lire les données de la requête car il ne savait pas ce que le format fourni était, il suffit donc de l'ignorer.
Lorsque vous spécifiez un backbone.js a une bonne asieuse reposante que vous pouvez utiliser comme référence . P> p> DataType code > Pour une demande de jQuery, vous disez simplement à JQuery quel est le format attendu que le serveur vous réponde. Pour dire au serveur Quel format de données vous envoie, vous devez fournir un
contenttype code>: p>
Voici une réponse décevante. Le bouton clic soumettait le formulaire, même s'il n'était pas obligé de le faire. Je mets Onsubmit = "retourne faux;" sous la forme et le problème a été résolu. p>
Je ne pense pas que cela appuierait dans tous les navigateurs. Mais peu de liens semblables ici Stackoverflow.com/Questtions/5894400/...
Si vous pensez que c'est un bogue JQuery, vous devez fournir la version exacte de JQuery que vous utilisez. Mais je ne pense pas que cela ait quelque chose à voir avec
mettre code>, car l'URL change aussi.
J'ai mis à jour la question à inclure les détails demandés. Il s'avère que l'URL ne change pas. Le get que je voyais est fait par Chrome et Firefox. La différence, je vois aujourd'hui, c'est que le travail (chrome) effectue en réalité le HTTP, alors que l'échec (Firefox) ne fait pas le HTTP.
Fonctionne pour moi avec Firefox 21.0 et JQuery 2.0.2. La source de votre problème n'est pas incluse dans votre question. Plbkac?