gpt4 book ai didi

jquery - JSONP 与 Jquery 1.9 和 Jersey 2.5.1

转载 作者:行者123 更新时间:2023-12-01 03:13:21 25 4
gpt4 key购买 nike

我用谷歌搜索了很多,但没有找到适合我需要的东西。我发现了这些类似的线程 here , herehere ,但他们没有解决我的问题或者我没有正确理解这一点。我还阅读了jersey documentation几次。

我正在使用 jersey 2.5.1 开发服务器端应用程序,并使用 HTML/CSS/JavaScript 开发客户端应用程序。所以这件事进展顺利,但我没有绊倒。我使用 Media-Moxy 作为我的 Java2Json 映射器。

@GET
@JSONP
@Path("search")
@Produces({MediaType.APPLICATION_JSON, "application/javascript"})
public String findByTagsAndBoundingBox(@QueryParam("topLeftLat") Double topLat...) {
// do some work
return json.toString();
}

如果我现在在命令行上执行curl操作(请参阅 Jersey 文档请求的接受 header )

curl -X GET -H "Accept: application/javascript" "http://localhost:8181/xxxxx/xxxx/search?topLeftLat=59.93704238758132&topLeftLon=10.68643569946289&bottomRightLat=59.890573111743336&bottomRightLon=10.806941986083984&tag=Restaurant&callback=?"

Jersey 确实按预期交付了内容(以 JSONP 形式):

callback([{"id":3134,"lon" .... }])

但是如果我像这样用 jquery 调用它:

$.getJSON("http://localhost:8181/xxxx/yyyy/search?" + query + "&callback=?", function() {
console.log( "success" );
})

我总是收到错误

 parsererror, Error: jQuery110207164248435292393_1391195897558 was not called 

我可以看到浏览器中的响应包含正确的 json,并且我得到了 200 返回码。但由于某种原因 jQuery 说有些问题。

如有任何帮助,我们将不胜感激,丹尼尔

最佳答案

callback([{ 应该是 ?([{ 使用与 CURL 一起使用的 url。

url中callback参数的作用是指定应该执行的回调函数的名称。例如,jQuery 指定了 &callback=jQuery110207164248435292393_1391195897558 ,这应该导致

jQuery110207164248435292393_1391195897558([{"id":3134,"lon" .... }])

从服务中返回。

您需要更改服务器代码中的这一行:

@JSONP(queryParam = "callback")

引用:https://jersey.java.net/documentation/latest/user-guide.html#d0e7040

关于jquery - JSONP 与 Jquery 1.9 和 Jersey 2.5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com