Express res.jsonp向Safari Extension AJAX调用返回两个回调名称

时间:2013-03-26 18:18:43

标签: ajax express jsonp

我正在使用后端的Express.js在Safari中构建扩展程序。我对服务器进行了一次AJAX调用,服务器响应了一个看似双重回调的名字:

jQuery191026131771644577384_1364321159940 && jQuery191026131771644577384_1364321159940([
  {
    "foo": "bar"
  }
]);

这是AJAX:

$.ajax({
    type : "GET",
    data : { 'something': 'something more'},
    url :  "http://localhost:3001/api/login/?callback=?",
    dataType: 'jsonp',
    success: function(data, text){
        console.log(data)
    },
    error: function (request, status, error) {
        console.log("ERROR: " + status + error );
    }  
});

......这是Express.js:

app.get('/api/login', function(req, res){
  res.jsonp([{'foo':'bar'}]);
});

浏览器报告解析错误,可能是因为上面的双回调戳。

线索?

2 个答案:

答案 0 :(得分:1)

这不是双回调,它与执行func && func()相同,它只是在调用函数之前确保函数存在,所以避免抛出异常。

答案 1 :(得分:0)

Hector在评论中说得对:尝试删除回调=?来自网址