[英]How Can I get the data from one domain to another domain using ajax jsonp?
[英]Can't get JSON from another domain using Ajax
我正在嘗試使用JSONP從另一個使用Spring的域中獲取我的JSON。 所以,我寫了JsonpControllerAdvice
:
@ControllerAdvice
public class JsonpControllerAdvice extends AbstractJsonpResponseBodyAdvice {
public JsonpControllerAdvice() {
super("callback");
}
}
而我的控制器:
@RequestMapping("games")
@RestController
public class GameController extends BaseGameController {
private static final Logger LOGGER = Logger.getLogger(GameController.class);
private static final String KAFKA_TOPIC = "virto_games";
private static final String ROOT_URL = ServerConfig.GAMES_HOST + "/games";
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> games(
@RequestParam(defaultValue = "0") int page
) {
String url = ROOT_URL + "?page=" + page;
return request.get(url);
}
}
在瀏覽器中,它返回下一個JSON:
{
"items":[{
"id":"1b4a3104-925b-46ac-a2da-2187bbf46e0a",
"name":"Minecraft",
"description":"Game",
"user_id":"ee430ea5-0977-4fc2-b1c4-cc33ddd9db56"
}],
"number":0,
"count":1
}
在我的js代碼下面是我嘗試獲取JSON的位置:
var virtoHost = "http://localhost:8080/";
function getGames() {
$.ajax({
url: virtoHost + 'games',
dataType: 'JSONP',
jsonpCallback: 'callback',
type: 'GET',
success: function (data) {
alert(JSON.stringify(data));
}
});
}
但是它崩潰並帶有異常:
SyntaxError: unexpected token: ':'
[Learn More]
games:1:8
怎么了? 我檢查了它是正確的JSON,並且:
是標准的分隔符。
我遇到了錯誤...我不知道AbstractJsonpControllerAdvice
為JSON-P支持設置了Jackson。 就我而言,我正在從游戲服務器中獲取一個就緒的JSON對象,而Jackson則未執行任何操作...
因此,我需要在游戲服務器上啟用JSON-P支持,並從聚合服務器向游戲服務器重新發送callback
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.