从JSP返回JSONP而不是JSON

从JSP返回JSONP而不是JSON,jsp,jsonp,Jsp,Jsonp,我在jsp中将响应类型设置为json时发现了一些问题,但我需要将响应类型设置为jsonp以进行跨域访问。还是这样吗: response.setContentType(“应用程序/javascript”) 只需将来自jsp的响应包装在调用函数(+content+)中,或者需要做更多的事情吗?要支持javascript中的跨域访问,您可以使用 $.support.cors=true 除此之外,您可以为jsonp将内容类型设置为application/javascript。我最近不得不这样做。在服务器

我在jsp中将响应类型设置为json时发现了一些问题,但我需要将响应类型设置为jsonp以进行跨域访问。还是这样吗:

response.setContentType(“应用程序/javascript”)


只需将来自jsp的响应包装在
调用函数(
+content+
中,或者需要做更多的事情吗?

要支持javascript中的跨域访问,您可以使用 $.support.cors=true

除此之外,您可以为jsonp将内容类型设置为application/javascript。

我最近不得不这样做。在服务器端,我有这样一些东西:

string callbackName = queryMap['callback']; //jquery will pass in some name in our .getJSON call below
string jsonData = getJsonData();
string jsonp = callbackName + "(" + jsonData + ")";

response.SetContentType('application/javascript');
response.Send( jsonp );
var url = getUrl() + "?callback=?";
$.getJSON(url,function(onSuccessData){ alert(onSuccessData); });
在javascript中是这样的:

string callbackName = queryMap['callback']; //jquery will pass in some name in our .getJSON call below
string jsonData = getJsonData();
string jsonp = callbackName + "(" + jsonData + ")";

response.SetContentType('application/javascript');
response.Send( jsonp );
var url = getUrl() + "?callback=?";
$.getJSON(url,function(onSuccessData){ alert(onSuccessData); });
jsp:

 String str = "{\"appNo\":\"" + "2" + .....+ "\"}";
    String json = "m1(" + str + ")";
    response.getWriter().write(json);
html:


这是我的jsp代码

可能与我看到的答案重复,但我更具体地问,如果要在另一端正确访问它,我还需要做些什么。我在发布后找到了应用程序/javascript答案,谢谢。我的问题实际上是针对如何创建JSP以便返回正确的jsonp数据。它应该由callbackfunction+'(“+content+”)或什么来格式化?谢谢,我们正在做一些基本上与此等效的事情。“这是我的jsp代码,执行与您相同的结果?”-您不必问问题就能得到好的答案。我建议你确定这是正确的答案,并有信心这样说。