【发布时间】:2014-06-04 08:25:11
【问题描述】:
我是 Node 和 Express 的新手。我可以从我的服务器应用程序获取数据,但在 POST 上失败。
我在“http://myapp.com”上有客户端,在“http://myapp.com:34627”上有 Node 应用程序。
这是 Node 应用程序:
var express = require('express'), app = express();
var result = {};
app.configure(function()
{
app.use(express.json());
app.use(express.urlencoded());
});
app.set("jsonp callback", true);
app.get('/get/users/:userid/:username',function(req,res)
{
var userID = req.params.userid;
var userName = req.params.username;
result = {
response: 'OK',
url_userid: userID,
url_username: userName
};
res.header('Access-Control-Allow-Origin','http://listasapp.in');
res.json(200,result);
});
app.post('/post/user',function(req,res)
{
console.log( req.body );
result = {
response: 'OK'
};
res.jsonp(200,result);
});
var server = app.listen(34627,function()
{
console.log( 'Server running at http://myapp.com:' + server.address().port );
});
$('#get-data').on('click tap',function()
{
var url = 'http://listasapp.in:34627/get/users';
url += '/24601';
url += '/junihh';
$.getJSON(url,function(rsp)
{
console.log( rsp );
});
});
这是客户端:
$('#get-data').on('click tap',function()
{
var url = 'http://myapp.com:34627/get/users';
url += '/24601';
url += '/junihh';
$.getJSON(url,function(rsp)
{
console.log( rsp );
});
});
$('#post-data').on('click tap',function()
{
var dta = {
userid: '24601',
username: 'junihh'
};
$.ajax({
type: 'POST',
url: 'http://myapp.com:34627/post/user?callback=?',
data: dta,
dataType: 'jsonp',
success: function(rsp)
{
console.log( rsp );
},
error: function(jqXHR,textStatus,errorThrown)
{
console.log( jqXHR.status );
console.log( textStatus );
console.log( errorThrown );
}
});
});
我有一个成功的 GET 请求,但是使用 POST 我得到了这个错误:
GET http://myapp.com:34627/post/user?callback=jQuery1110009652853850275278_1397958835486&userid=24601&username=junihh&_=1397958835487 404 (Not Found)
我被困在这里,我不知道如何解决这个错误。我的代码有问题??
感谢您的帮助或建议。
【问题讨论】:
-
这是一个 GET 请求,而不是一个 POST。您不能使用 JSONP 发出 POST 请求,只能使用 GET。
-
感谢您的回答@RayNicholus。关于如何通过跨域 POST to Express 有什么建议吗??
标签: node.js post express cross-domain cors