jsonp 调用:参数列表后缺少 )

jsonp call: missing ) after argument list

我正在通过 Jsonp 呼叫休息 API。 API 服务器 returns 正确的值,但我收到 'missing ) after argument list' 和 ajax returns 错误。这里有什么不正确的?

在Java脚本中,

$.ajax({
url: 'http://localhost:8080/version',
dataType: 'jsonp',
type: 'GET',
success: function (data) {
    console.log(data);
},
error: function(xhr, status, error){
     console.log(xhr.status + ": " + xhr.responseText)
}, 

});

在Java、

@GET
@Produces("application/javascript")
public String getVersion(@QueryParam("callback") String callback) {
      return callback + "(hello)";
}

我看不出您是如何得到 那个 错误的,但是 JSONP 响应是错误的。你发回这样的东西:

callbackName(hello)

需要一个全局 hello 变量;你好应该在引号中:

callbackName("hello")

所以:

@GET
@Produces("application/javascript")
public String getVersion(@QueryParam("callback") String callback) {
      return callback + "(\"hello\")";
// NOTE ------------------^^-----^^
}

关于

missing ) after argument list

这种情况会产生该错误:

callbackName("hello"

或者参数之间缺少 , 也会产生它:

callbackName("hi" "there")