2017-09-24 7 views
1

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(); 
}); 

Répondre

0

La question est résolue.

Le problème venait des pages GitHub. Je suis passé à Heroku et tout est redevenu normal. Mon conseil à tout le monde est de ne pas héberger leurs sites sur les pages GitHub, semble avoir une restriction sur certaines demandes.