我正在尝试从我的APEX站点获取一个字符串到以下节点js webserver:
tts = require('node-tts-api');
express = require('express');
var app = express();
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.get('/hello/:text', function(req, res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
var text = req.param('text');
tts.getSpeech(text, function(error, link) {
res.write(link);
res.end();
});
});
var server = app.listen(3000, function(){
console.log('Listening on port 3000');
});
在APEX中,我执行以下动态JavaScript操作:
var url = 'http://127.0.0.1:3000/hello/' + $('#P4_TEXT').val();
$.get( url, function( data ) {
var url = data;
console.log('get start');
console.log(url);
var player = document.createElement('player');
player.setAttribute('src', url);
player.setAttribute('type', 'audio/mp3');
document.body.appendChild(player);
player.play();
});
控制台未显示我为调试添加的任何日志条目。当我开始动态动作时,没有任何反应。当我手动输入URL时,浏览器会永久加载,但不会返回任何数据。是否有任何错误,或者我是否理解错误?
答案 0 :(得分:1)
在客户端,您可以使用带有提交输入/按钮的表单。在服务器端,我可以建议你使用Express和body解析器。您可以在那里找到示例:How to retrieve POST query parameters?
答案 1 :(得分:1)
刚刚将动态动作更改为以下代码,一切正常。
var url = 'http://apex.mt-ag.com:1337/tts/' + $( P4_X ) .val();
$.get( url, function( data ) {
var url = data;
console.log('get start');
console.log(url);
var snd = new Audio(url);
snd.play();
});