jspからjsonに応答タイプを設定する際にこの質問を見つけましたが、クロスドメインアクセスのために応答タイプをjsonpに設定する必要があります。それでもこれでしょうか:
response.setContentType("application/javascript");
jspからの応答をcallbackfunction(
+content+でラップするだけ)
ですか、それとももっとやらなければならないことがありますか?
jspからjsonに応答タイプを設定する際にこの質問を見つけましたが、クロスドメインアクセスのために応答タイプをjsonpに設定する必要があります。それでもこれでしょうか:
response.setContentType("application/javascript");
jspからの応答をcallbackfunction(
+content+でラップするだけ)
ですか、それとももっとやらなければならないことがありますか?
私は最近これをしなければなりませんでした。サーバー側では、次のようなものがありました。
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 );
そしてjavascriptではそれはそのようなものでした:
var url = getUrl() + "?callback=?";
$.getJSON(url,function(onSuccessData){ alert(onSuccessData); });
javascriptでクロスドメインアクセスをサポートするには、$。support.cors=true;を使用できます。
それ以外は、content-typeをjsonpのapplication/javascriptに設定できます。
jsp:
String str = "{\"appNo\":\"" + "2" + .....+ "\"}";
String json = "m1(" + str + ")";
response.getWriter().write(json);
html:
$.ajax({
type: 'GET',
url: url,
dataType: "jsonp",
crossDomain: true,
cache:false,
jsonp:"callback",
success: function(data){ }....
});
これは私のjspのコードです