Je vais avoir un problème quand je posterai des données d'un formulaire au serveur que je reçois:forme d'affichage avec AngularJS renvoie le code 405, après la publication de site web
angular.js:14642 Possibly unhandled rejection: {"data":"<html>\n<head><title>405 Not Allowed</title></head>\n<body bgcolor=\"white\">\n<center><h1>405 Not Allowed</h1></center>\n</body>\n</html>","status":405,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/messages","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"Method Not Allowed"}
Tout fonctionne normalement sur localhost, mais après la publication que je reçois cette erreur sur le post. Mon site est publié sur des pages Github et le nom de domaine est namecheap.
Voici mon code d'itinéraire:
module.exports = (function() {
'use strict';
var router = require('express').Router();
var Message = require('./angular/models/messageModel');
router.post('/messages', function(req,res,next){
var message = new Message();
message.name = req.body.name;
message.email = req.body.email;
message.subject = req.body.subject;
message.message = req.body.message;
if(req.body.name == null || req.body.name == "" || req.body.email == null || req.body.email == "" || req.body.subject == null || req.body.subject == "" || req.body.message == null || req.body.message == ""){
res.json({success: false, message: "Please fill up the required fields!" });}
if(req.body.message.length<8){
res.json({success: false, message: "Your message is too short!"});
} else {
message.save(function(err){
if(err){
throw err;
} else {
res.json({success: true, message: "Message sent!"});
}
});
}
});
return router;
})();
Et voici ma demande:
$http({
method: 'POST',
url: '/messages',
headers: { "Content-Type": "application/json" },
data: app.contactData
})
Toute aide serait appréciée!
EDIT: J'ai ajouté des en-têtes de réponse, mais rien n'a changé
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://www.stundji.info');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT,');
res.setHeader('Access-Control-Allow-Headers', 'application/json');
res.setHeader('Access-Control-Allow-Credentials', false);
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});