Javascript 对服务器的Crossdomian ajax请求返回的json对象显示错误意外标记:

Javascript 对服务器的Crossdomian ajax请求返回的json对象显示错误意外标记:,javascript,json,ajax,express,cross-domain,Javascript,Json,Ajax,Express,Cross Domain,我正在运行一个express服务器,在该服务器中检查对特定url请求的get请求。现在在回复中,我尝试以json格式发送回复,以便我可以对页面进行ajax调用并获取数据。现在,为了进行跨域需求,我必须使用jsonp。现在,当请求完成并将数据返回回调时,会显示错误未捕获的语法错误:意外标记:。 下面是服务器和客户端代码 服务器 var express=require('express'); var app = express(); var http = require('http').Server

我正在运行一个express服务器,在该服务器中检查对特定url请求的get请求。现在在回复中,我尝试以json格式发送回复,以便我可以对页面进行ajax调用并获取数据。现在,为了进行跨域需求,我必须使用jsonp。现在,当请求完成并将数据返回回调时,会显示错误
未捕获的语法错误:意外标记:
。 下面是服务器和客户端代码

服务器

var express=require('express');
var app = express();
var http = require('http').Server(app);
var port=Number(3000);
var server_ip_address = '127.0.0.1';

http.listen(port,server_ip_address, function(){
   console.log('listening on '+port);
});

app.get('/test', function (req, res) {
   console.log(req.query);
   res.send({message:'hello'});
});
客户

$.ajax({
    url: 'http://localhost:3000/test',
    type: 'GET',
    dataType:'jsonp',
    crossDomain:true,
    data: {
        username: $('#username').val(),
        password: $('#pwd').val()
    },
    success: function(result){
        console.log($.parseJSON(result));
    },
    jsonp:'jsonp'
});
在我尝试使用的服务器代码中

res.setHeader('Content-Type', 'application/javascript');
res.send({message:'recieved'});
甚至


在客户端中,我尝试按原样记录结果对象,但没有效果。感谢您的帮助。此外,使用其他方法获取数据的任何建议也同样受欢迎。提前感谢。

最简单的方法是使用
res.jsonp()
而不是设置自己的标题等:

app.get('/test', function (req, res) {
   console.log(req.query);
   res.jsonp({message: 'hello'});
});
默认回调参数只是
callback
,但您可以这样更改它(如果需要):


注意:您可能必须从客户端代码中删除
jsonp:'jsonp'
,因为它分配了回调的名称。如果您正在提交数据(尤其是敏感数据),我还建议您将其从GET转换为POST请求。

谢谢。成功了。了解到res.jsonp函数的存在。没问题,是关于
res.jsonp
的文档链接,对于非跨域请求也只有
res.json
app.get('/test', function (req, res) {
   console.log(req.query);
   res.jsonp({message: 'hello'});
});
app.set('jsonp callback name', 'cb');