看看你是否能让下面的例子工作:
宙斯/src/controller/zeus_config_controller.erl:
-module(zeus_config_controller, [Req]).
-compile(export_all).
index('GET', []) ->
{ok, []}.
get_data('GET', []) ->
{json, [{a, 1}, {b, 2}] }.
宙斯/src/view/config/index.html:
<html>
<head>
<title>{% block title %}Config{% endblock %}</title>
<!-- jquery cdn: --!>
<script src="http://code.jquery.com/jquery-3.3.1.js"
integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
crossorigin="anonymous"></script>
<!-- zeus js: --!>
<script src="/static/js/myjs.js"></script>
</head>
<body>
{% block body %}
<div id="results">results</div>
<div><button id="button1" type="button">Click me</button></div>
{% endblock %}
</body>
</html>
宙斯/priv/static/js/myjs.js:
function on_button_click() {
$.get("/config/get_data", function(data) {
$("#results").text(data.a + data.b);
});
}
$(document).ready( function() {
$("#button1").click(on_button_click);
});
在浏览器中输入以下网址:
http://localhost:8001/config/index
然后单击按钮。你看到了什么?您的浏览器的 js 控制台中是否有任何错误?
14:12:25.360 [info] GET /config/function1/paramX [zeus] 200 98ms
14:12:25.404 [info] GET /config/function2/paramY [zeus] 200 108ms
现在这两行日志之间没有以前的 erl 日志了。
当我输入http://localhost:8001/config/index
上面的示例时,我看到以下输出:
...
...
07:05:42.421 [info] GET /config/get_data [zeus] 200 40ms
07:05:42.435 [info] GET /config/index [zeus] 200 55ms
这对我来说没有多大意义,因为我的代码中没有任何内容明确向/config/get_data
. 然后当我点击页面上的按钮时,我看到:
...
...
07:06:11.231 [info] GET /config/get_data [zeus] 200 26ms
...正如预期的那样。