我正在尝试在Openshift上的应用程序中进行简单的Ajax调用。这是我的ajax调用,它是通过按下按钮触发的:
$.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');
};
};
当我访问my-site-name.rhcloud.com/asciimo时,一切正常,但如果我点击一个按钮(到达那里),我会得到:
POST http://my-site-name.rhcloud.com/asciimo 404 (Not Found)
即使该链接显然可以自行运行。
答案 0 :(得分:1)
将您的方法更改为GET
method: 'GET',
当您直接在浏览器中访问URL时,您将发出GET请求,而不是POST。
答案 1 :(得分:0)
我知道现在的问题是什么。在ajax中有一个POST请求,self.routes['/asciimo']
(由Openshift作为模板给出)仅处理GET请求。解决问题的方法就是将我的函数重写为单独的POST函数:
self.addpost = function() {
self.app.post('/asciimo', function(req, res){
res.send('done');
});
};