Javascript 未捕获的语法错误:无效或意外的标记。谷歌API翻译
我是初学者,所以没有太多经验。 任务是翻译用户编写的文本块。 所以html文件:Javascript 未捕获的语法错误:无效或意外的标记。谷歌API翻译,javascript,php,html,token,translate,Javascript,Php,Html,Token,Translate,我是初学者,所以没有太多经验。 任务是翻译用户编写的文本块。 所以html文件: <script type="text/javascript"> $('#some_id').on('click', function(){ var text_var = JSON.stringify("{$text_without_adv}"); var own_script = 'gTApi.php'; $.ajax({ method: 'post',
<script type="text/javascript">
$('#some_id').on('click', function(){
var text_var = JSON.stringify("{$text_without_adv}");
var own_script = 'gTApi.php';
$.ajax({
method: 'post',
url: own_script,
data: $.parseJSON(text_var)
}).done(function(data) {
console.log(data);
});
});
</script>
页面加载后,我在变量$text\u的第一句后面得到了意外的标记,但没有\u adv,无法进行翻译,单击按钮时不会发生任何事情
例如:
var text\u var=JSON.stringify
(“
但是她有个情人,他说他会去拿球。//代币///token///所以他去了公园大门,但是门关上了;所以他爬上了树篱,当他爬到树篱顶上时,一位老妇人从他面前的堤坝里站起来,说,如果他想拿球,他必须在花园里睡三个晚上他说他会的。”)
但主要的问题是,其他用户发布的其他文本中不可能有错误。我不明白,来自3个不同用户的3个不同文本有意外的令牌,然后接下来的2个没有错误,然后下一个有错误等等。问题出在哪里?在这种情况下,您不需要传递json,只需传递
post
数据即可
这样做
先换这一行
// to stored your php variable in a js variable
var text_var = "<?php echo $text_without_adv; ?>";
在你的php中
而不是
$text = file_get_contents('php://input');
改为
$text = $_POST['text'];
所以你的代码是这样的
JS
$('some#u id')。在('click',function()上{
var text_var=”“;
var own_script='gTApi.php';
$.ajax({
方法:“post”,
url:own_脚本,
数据:{
text:text\u var
}
}).完成(功能(数据){
控制台日志(数据);
});
});
PHP
如果您想要JSON,那么让您的php代码发送JSON-目前您使用的是JSON\u decode
。。。保证不会是JSONI这是您的php变量$text\u而不带\u adv
?@初学者$text\u而不带\u adv
是的,它是用php赋值的file@JaromandaX你能举例说明你的意思吗?我得到状态代码:503服务不可用表单数据:文本:
你能截屏吗?你需要什么部分?表单数据、状态代码或smth其他信息?
$.ajax({
method: 'post',
url: own_script,
data: {
// just use the declared js variable above which contains your php variable at the first place
text: text_var
}
}).done(function(data) {
console.log(data);
});
$text = file_get_contents('php://input');
$text = $_POST['text'];
<script type="text/javascript">
$('#some_id').on('click', function(){
var text_var = "<?php echo $text_without_adv; ?>";
var own_script = 'gTApi.php';
$.ajax({
method: 'post',
url: own_script,
data: {
text: text_var
}
}).done(function(data) {
console.log(data);
});
});
</script>
<?php
require_once "../../vendor/autoload.php";
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
$text = $_POST['text'];
$apKey = '**************************';
$client = new Client(
array(
'headers' => array(
'Accept' => 'application/json'
)
)
);
try {
$response =$client->get('https://translation.googleapis.com/language/translate/v2?key='
. $apKey
. '&source=en&target=es&q=' . $text);
} catch (\Exception $e) {
echo $e->getMessage();
}
$response_body = json_decode($response->getBody(), true);
echo $response_body['data']['translations'][0]['translatedText'];