我有一个cordova项目,我提出以下要求。
$("#asd").on("click",function(){
var data = {};
data.title = "title";
data.message = "message";
$.ajax('127.0.0.1:3000/register',
{
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
success: function() { console.log('success');},
error : function() { console.log('error');}
});
});
服务器端代码:
var express = require('express');
var app = express();
app.use(express.bodyParser());
app.post('/register', function(req, res){
var obj = {};
console.log('body: ' + JSON.stringify(req.body));
res.send(req.body);
});
app.listen(3000);
但是当我发送请求时,我得到Internal Server Error 500
。如果我只是通过html表单或curl提出请求它就可以正常工作。
这可能是什么原因?
答案 0 :(得分:0)
如果它与CORS有关,那么你需要通过添加以下HTTP头来允许服务器上的CORS服务于静态:
Access-Control-Allow-Origin: http://127.0.0.1:3000
Here是Express的示例(他们使用通配符*
代替http://127.0.0.1:3000
)。
答案 1 :(得分:0)
$.ajax({
url:'/register', //or 'localhost:3000/register'
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
success: function() { console.log('success');},
error : function() { console.log('error');}
});
此外,您还需要使用cors()
var cors = require('cors')
var app = express();
app.use(cors());
答案 2 :(得分:-1)
在回复中尝试JSON.stringify()
res.send(JSON.stringify(req.body));