【问题标题】:jsonp call: missing ) after argument listjsonp 调用:缺少 ) 在参数列表之后
【发布时间】:2016-10-22 11:47:51
【问题描述】:

我正在通过 Jsonp 调用一个 REST API。 API 服务器返回正确的值,但我在参数列表后得到“缺少)”并且 ajax 返回错误。这里有什么不正确的?

在 Javascript 中,

$.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 文本。您的 Java 代码产生了一些不正确的东西,但并不像错误消息所暗示的那样不正确。

标签: java ajax jsonp


【解决方案1】:

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

callbackName(hello)

这需要一个全局的hello 变量;你好应该用引号引起来:

callbackName("hello")

所以:

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

关于

参数列表后缺少 )

这就是会产生错误的东西:

callbackName("hello"

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

callbackName("hi" "there")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    相关资源
    最近更新 更多