[JAVA] Behandeln Sie JSON domänenübergreifend mit Play Framework

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.

Umgebung

JSON-Generierung

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.

Erhalten Sie JSON mit Ajax

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

Behandeln Sie JSON domänenübergreifend mit Play Framework
Behandeln Sie JSON mit minimal-json
Validierungsfunktion in Play Framework
Doppelte Übermittlung von Maßnahmen mit Play Framework
Behandeln Sie JSON mühelos mit Alamofires Antwort Json
Authentifizierungsfunktion mit Play Framework [Zugriffsbeschränkungen]
Spielen Sie die Framework 2.6 (Java) -Umgebungskonstruktion mit Eclipse
Authentifizierungsfunktion mit Play Framework [Registrierung und Authentifizierung]
Behandeln Sie große JSON mit Java Lambda
Anders als bei JSON
Ich habe mit Spring Framework eine API-Domain erstellt. Teil 2
Behandeln Sie das gehashte Passwort mit BCryptPasswordEncoder von Spring Security in Perl
Ich habe mit Spring Framework eine API-Domain erstellt. Teil 1