jQuery cross domaine POST shenanigans

Je suis en train de s'authentifier à un API, qui permet uniquement de vous authentifier à l'aide d'un POST avec JSON comme des données de formulaire, dans le format {"nom":"myusername","mot de passe":"monmotdepasse"}.

J'ai essayé pendant deux jours pour le faire fonctionner avec jQuery, mais je suis en cours d'exécution dans des problèmes parce que c'est la croix de domaine. Comment puis-je y arriver?

Message d'erreur:

Request Method:OPTIONS
Status Code:405 METHOD NOT ALLOWED

Code jusqu'à présent:

var username = "myusername";
var password = "mypass"
var authurl = "https://myurl";

$.ajax
({
    type: "POST",
    url: authurl,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    async: false,
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'},
    success: function (result) {
        $('#json').html(result);
    }
})

Pour résumer:

  • API accepte uniquement POST pour auth
  • Json API nécessite que les données de formulaire, par exemple: {"nom":"myusername","mot de passe":"monmotdepasse"}
  • Le js est exécuté à partir d'un domaine différent, causant de la croix-des erreurs de domaine

Votre aide est très apprécié 🙂

source d'informationauteur FLX | 2011-07-20