Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获的语法错误:无效或意外的标记。谷歌API翻译_Javascript_Php_Html_Token_Translate - Fatal编程技术网

Javascript 未捕获的语法错误:无效或意外的标记。谷歌API翻译

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',

我是初学者,所以没有太多经验。 任务是翻译用户编写的文本块。 所以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',
        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'];