我正在制作一个需要以JSONP格式返回数据的Web服务。我正在使用JSP的JSON标记库,我以为所有必须添加的都是括号,但是我找不到一个很好的资源来验证这一点。
例如,曾经的Web服务功能都使用以下功能返回:
private static String getJSONPObject(String s) throws JSONException { return "(" + new JSONObject(s) + ")"; }
这样对吗?
谢谢!
JSONP只是一种黑客,它允许Web应用程序跨域检索数据。可以说它违反了同源起源策略(SOP)。它的工作方式是使用Javascript将“ script”元素插入页面。因此,您需要一个回调函数。如果您没有,则您的Javascript将无法访问JSON对象。但是,通过使用JSONP,您的Javascript代码可以调用回调函数。
因此,您必须指定回调名称。因此,您的函数可能如下所示:
private static String getJSONPObject(String callback, String s) throws JSONException { return callback + "(" + new JSONObject(s) + ")"; }