发送JSONP与JSON数据?

Gar*_*ett 10 java json jsonp web-services

我正在制作一个需要以JSONP格式返回数据的Web服务.我正在使用JSON taglib用于JSP,我认为所有必须添加的都是括号,但我找不到一个好的资源来验证这一点.

例如,使用此函数返回Web服务函数:

private static String getJSONPObject(String s) throws JSONException {
    return "(" + new JSONObject(s) + ")";
}
Run Code Online (Sandbox Code Playgroud)

它是否正确?

谢谢!

JP *_*son 23

JSONP只是一个允许Web应用程序跨域检索数据的黑客攻击.可以说它违反了同源政策(SOP).它的工作方式是使用Javascript在页面中插入"script"元素.因此,您需要一个回调函数.如果你没有,你的Javascript将无法访问JSON对象.但是通过使用JSONP,您的Javascript代码可以调用回调函数.

因此,您必须指定回调名称.所以你的功能可能如下所示:

private static String getJSONPObject(String callback, String s) throws JSONException {
    return callback + "(" + new JSONObject(s) + ")";
}
Run Code Online (Sandbox Code Playgroud)

  • 您应该有权访问http请求对象或至少某种方式访问​​已发送的回调,通常采用以下格式:http://example.com?callback = name123 (2认同)