2015-05-22 4 views
0

Я пытаюсь сделать простой вызов Ajax в своем приложении на Openshift. Это мой вызов Ajax, который вызывается нажатием кнопки:Ajax call in Openshift throws 404 error

$.ajax({ 
    url: 'http://my-site-name.rhcloud.com/asciimo', 
    method: 'POST', 
    data: {attr:"value"} 
}); 

И это узел в моем файле server.js:

self.createRoutes = function() { 
    self.routes['/asciimo'] = function(req, res) { 
     res.send('done'); 
    }; 
}; 

Все работает, когда я иду в МЕСТЕ-имени. rhcloud.com/asciimo, но если нажать на кнопку (чтобы получить там) я получаю:

POST http://my-site-name.rhcloud.com/asciimo 404 (Not Found) 

даже если ссылка явно работает на своем собственном.

+0

Вы должны использовать журналы и проверять наличие ошибок. – Ricardo

ответ

1

Измените метод GET

method: 'GET', 

Когда вы идете в URL непосредственно в браузере, вы выдачи запроса GET, а не POST.

+0

После изменения, которое я получаю: GET http://bgl-boardgamelab.rhcloud.com/asciimo?attr=sdf 500 (Внутренняя ошибка сервера) – Mariusz

+1

Если вы перейдете по этой ссылке, используя ваш браузер, вы получите ту же ошибку , Проблема не в вашем js-коде. Его либо с bgl -boardgamelab.rhcloud.com, либо вы используете API неправильно –

0

Я знаю, в чем проблема. В ajax есть запрос POST и self.routes['/asciimo'] (данный как шаблон Openshift) имеет дело только с запросами GET. Решена проблема просто переписать мою функцию как отдельную функцию POST:

self.addpost = function() { 
    self.app.post('/asciimo', function(req, res){ 
    res.send('done'); 
    }); 
};