spellchecker插件给我错误:缺少输入参数'text'

时间:2014-05-13 12:01:28

标签: tinymce tinymce-4

我正在尝试使用TinyMCE的PHP Spellchecker 4.0插件,但在我尝试进行任何实际的拼写检查时,会出现Error: Missing input parameter 'text'错误。

这是我的代码:

<script type="text/javascript" src="tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
    menubar:false,
    statusbar:false,
    selector: "textarea",
    plugins: ["link","spellchecker"],
    toolbar: "bold italic | numlist bullist | link unlink | spellchecker",
    force_br_newlines: true,
    force_p_newlines: false,
    forced_root_block: '',
    height: 300,
    spellchecker_rpc_url: "spellchecker.php"
 });
</script>
<textarea>tgis is misspelled text</textarea>

你可以在这里测试一下:

http://www.frostjedi.com/terra/dev/tinymce/test.html

这是我正在使用的拼写检查程序版本的链接:

http://www.tinymce.com/wiki.php/PHP_Spellchecker

我使用Wireshark查看上面发送的内容,这是(通过POST):

{"id":"c0","method":"spellcheck","params":{"lang":"en","words":["tgis","is","misspelled","text"]}}

我得到的回应:

{"error":"Missing input parameter 'text'."}

响应正确 - 没有名为text的输入参数。但是如果需要的话,我希望javascript能够添加它。

我尝试<textarea name="text"><textarea id="text">也无济于事。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

该插件已损坏。根据我的OP,它的帖子是json编码的。然而,PHP引擎期待非JSON编码的代码。来自spellchecker\includes\Engine.php

    $method = self::getParam("method", "spellcheck");
    $lang = self::getParam("lang", "en_US");
    $text = self::getParam("text");

取而代之的是让它对我有用:

    global $HTTP_RAW_POST_DATA;
    $data = json_decode($HTTP_RAW_POST_DATA);
    $method = $data->method;
    $lang = $data->params->lang;
    $text = $data->params->words;

我认为,在他们的网站上突出显示的插件并不是开箱即用,但无论如何都是愚蠢的。