我是Node and Express的新手。 我可以从服务器应用程序获取数据,但在POST上失败。

我的客户端位于“ http://myapp.com ”上,而节点应用程序位于“ http://myapp.com:34627 ”上。

这是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)

我被困在这里,我不知道如何解决该错误。 我的代码有问题吗?

感谢您的帮助或建议。

===============>>#1 票数:5

最后,由于这篇文章,我找到了答案: https : //github.com/visionmedia/express/blob/master/examples/cors/index.js

我将这部分代码添加到我的Node应用程序中:

app.all('*',function(req,res,next)
{
    if (!req.get('Origin')) return next();

    res.set('Access-Control-Allow-Origin','http://myapp.com');
    res.set('Access-Control-Allow-Methods','GET,POST');
    res.set('Access-Control-Allow-Headers','X-Requested-With,Content-Type');

    if ('OPTIONS' == req.method) return res.send(200);

    next();
});

  ask by junihh translate from so

未解决问题?本站智能推荐: