gpt4 book ai didi

java - 带有 Java 服务器页面的 JSONP

转载 作者:行者123 更新时间:2023-11-29 05:57:36 24 4
gpt4 key购买 nike

我对 JSONP 了解了一些……但感觉我还是很笨。我创建了以下页面,它应该通过我的网络服务以 JSON 表示法获取信息:

<html>
<head>
<title> SomeHtml Form </title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
function getParameters(){
$.getJSON('http://localhost:8080/test/services/export/getuser.mvc?callback=?',function(res){
alert('Your name is '+res.lname);
});
}
</script>
</head>

<body >
<button onclick="getParameters();">Get Name</button>
</body>
</html>

我在 Liams 的帮助下创建了此主题评论:Simple jQuery, PHP and JSONP example?

更新 13-07-2012 15:06我设法从我的 Servlet 得到了正确的结果,但现在我从接收网站得到了不同的错误(“错误:资源未定义”)。对于我的 JSONP 数据,正确的 key 是什么,以便网站可以读取它?

另一方面,我有一个使用 SPRING 和 Java Servlet 的网络服务,它由 $.getJSON('http://localhost:8080/test/services/export/getuser.mvc?callback=? ',...)该服务如下所示:

@Controller
@RequestMapping("/services/export/")
public class AccountServiceProviderController extends ProfileDashboardController {

private static final String DESC_NAME = "ACCOUNT SERVICE PROVIDER CONTROLLER";


@RequestMapping("/getuser")
public @ResponseBody
JSONPObject list(final HttpServletResponse response) {

return new JSONPObject("res", getJson());

}

public JSONObject getJson() {
User user = getCurrentUser();

// logger.debug("ID: " + id);

// json
JSONObject json = new JSONObject();
json.put("lname", user.getLastName());
json.put("fname", user.getFirstName());

logger.info(json.toString());
return json;

}

}

不幸的是,我从来没有收到警报。我做错了什么?

更新此错误消息:“未找到资源”是什么意思。它必须命名为什么才能被发现?

最佳答案

好的...我发现了错误。如果您声明了以下内容,则上述代码有效:

  response.setContentType("text/javascript; charset=UTF-8");

完整的工作代码如下所示(Servlet):

@Controller
@RequestMapping("/secure/profile/services/export/")
public class AccountServiceProviderController extends ProfileDashboardController {

private static final String DESC_NAME = "ACCOUNT SERVICE PROVIDER CONTROLLER";


@RequestMapping("/getuser")
public @ResponseBody
JSONPObject list(@RequestParam("callback") final String callback, final HttpServletResponse response) {

response.setContentType("text/javascript; charset=UTF-8");

return new JSONPObject(callback, getJson());

}

public JSONObject getJson() {
User user = getCurrentUser();
JSONObject json = new JSONObject();

// User muss eingeloggt sein
if (user != null) {
json.put("lname", user.getLastName());
json.put("fname", user.getFirstName());

logger.info("Daten werden exportiert: " + json.toString());
return json;
}
return null;

}

}

关于java - 带有 Java 服务器页面的 JSONP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11469692/

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