首先,我在这里阅读了很多帖子,但在我自己的代码中没有发现问题,包括这个$.ajax 和 JSONP。ParseError 和 Uncaught SyntaxError: Unexpected token :
我正在构建一个 Safari 扩展,需要发布/获取到我的服务器并处理响应。Safari 抛出此错误:
SyntaxError: Unexpected token ':'
和这条消息
"handle was not called"
其中 'handle' 是此扩展代码中的回调:
var server="http://localhost:3001/api/login";
$.ajax({
type : "GET",
url : server,
data: {"something" : "else"}
dataType: 'jsonp',
jsonp:false,
jsonpCallback: 'handle',
success: function(data, text){
var json = $.parseJSON(data);
console.log(json)
},
error: function (request, status, error) {
console.log(error );
}
});
Express.js (2.5.5) 代码是:
//in the config
app.set( "jsonp callback", true )
app.all('/', function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.get('/api/login', function(req, res){
res.json(
{
"success": {"that":"this"}
}
);
});
注意:我尝试过 res.jsonp、设置内容类型等,但响应相同。在这个过程中,我学到了很多关于 CORS 和 Ajax 的知识,但我的眼睛显然很模糊。点击我的高跟鞋三下也没有帮助。
线索?谢谢!