【问题标题】:POST to express.js with 'Access-Control-Allow-Origin'使用“Access-Control-Allow-Origin”发布到 express.js
【发布时间】: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)

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

感谢您的帮助或建议。

【问题讨论】:

标签: node.js post express cross-domain cors


【解决方案1】:

感谢这篇文章,我终于找到了答案: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();
});

【讨论】:

    猜你喜欢
    • 2014-09-26
    • 1970-01-01
    • 2017-06-15
    • 2016-09-30
    • 2015-06-17
    • 2017-12-29
    • 1970-01-01
    • 2017-05-27
    • 2019-02-07
    相关资源
    最近更新 更多