Es gibt verschiedene Möglichkeiten, eine WEB-Anwendung mit Play Framework im Internet zu erstellen, aber ich glaube nicht, dass ich oft davon höre, JSON domänenübergreifend weiterzugeben, deshalb habe ich es versucht. Es gab auch einen süchtig machenden Punkt, also werde ich ihn notieren, wenn ich ein Memorandum habe.
Generieren Sie zunächst JSON auf dem Server. Gehen Sie einfach zu http: // localhost: 9000 / ajax und Sie befinden sich in Ihrem Browser
[{"name":"mirai","changed":"miracle"},{"name":"riko","changed":"magical"},{"name":"kotoha","changed":"felice"}]
Wird Angezeigt werden.
Fahren Sie zunächst mit dem Punkt fort, an dem "Hallo" mit der Methode Verwenden von Play Framework ohne Verwendung eines typsicheren Aktivators ausgegeben werden kann.
Fügen Sie nach der Ausgabe von "Hallo" die Ajax-Methode zu Application.java hinzu.
app/controllers/Application.java
package controllers;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Http;
import play.mvc.Result;
import java.util.*;
import java.util.ArrayList;
/**
* Created by sunda on 17/05/28.
*/
public class Application extends Controller {
public Result index() {
return ok("hello");
}
public Result ajax() {
List<Map<String, String>> list = new ArrayList<>();
list.add(new HashMap<String, String>(){
{put("name", "mirai");}
{put("changed", "miracle");}
});
list.add(new HashMap<String, String>(){
{put("name", "riko");}
{put("changed", "magical");}
});
list.add(new HashMap<String, String>(){
{put("name", "kotoha");}
{put("changed", "felice");}
});
response().setHeader(Http.HeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN, " *");
return ok(Json.toJson(list));
}
}
** Der wichtige Teil ist `response (). SetHeader (Http.HeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN," * ");`
. Ohne dies können Sie nicht von einer anderen Domain aus zugreifen. ** ** **
Als nächstes legen Sie Routen fest. Fügen Sie den Routen Folgendes hinzu.
conf/routes
GET /ajax controllers.Application.ajax()
Wenn Sie hier sbt ausführen und auf http: // localhost: 9000 / ajax zugreifen, sollte der vorherige JSON an den Browser ausgegeben werden.
Als nächstes werde ich die Client-Seite schreiben. Empfangen Sie den vorherigen JSON mit Javascript, formatieren Sie ihn entsprechend und zeigen Sie ihn an.
test.html
<!DOCTYPE html>
<html lang="ja">
<head>
<title>sample</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="./test.js"></script>
</head>
<body>
<h1>JSON-Test</h1>
<div>
<dl id="precure">
</dl>
</div>
</body>
</html>
Es ist nervig, also benutze ich jQuery.
test.js
$(function() {
$("#precure").each(function() {
var $container = $(this);
$.getJSON("http://localhost:9000/ajax", function(data){
var elements = [];
$.each(data, function(i, item) {
var name = '<dt>' + item.name + '</dt>';
var changed = '<dd>' + item.changed + '</dd>';
elements.push($(name).get(0));
elements.push($(changed).get(0));
});
$container.append(elements);
});
});
});
Wenn Sie jetzt test.html in Ihrem Browser öffnen, wird eine formatierte Seite angezeigt. vielleicht.
Recommended Posts