在简单的AJAX上解析错误语法错误意外令牌

时间:2013-07-22 09:20:28

标签: php jquery ajax parse-error

我是AJAX& amp;的初学者javascript,所以请耐心等待。

我想将一个变量(document.getElementById('txtSearch').value)从我的AJAX传递给PHP,所以我尝试编写类似这样的代码:

$("#btnSearch").click(function() {
            var keyword = "";
            alert(document.getElementById('txtSearch').value);
            $.ajax({
                url: BASE_URL + 'index.php/jwm/search', //This is the current doc
                type: "POST",
                dataType:'json', // add json datatype to get json
                data: ({keyword: document.getElementById('txtSearch').value}),
                error : function(jq, st, err) {
                    console.log(arguments);
                    alert(st + " : " + err);
                },
                success: function(data){
                    alert(data);
                }
            });  
        }); 

但是,我收到了一个错误:parse error syntax error unexpected token <,有时错误会有所改变:parse error syntax error unexpected token T

修改 这是我的PHP代码:

function search() {
        $keyword = $_POST['keyword'];
        echo "TEST : $keyword";
        $result = $this->jwm_m->getDataByKeyword('msmall', $keyword);
        header('Access-Control-Allow-Origin: *');
        header('Access-Control-Allow-Methods: GET, POST');  
        header('Content-type: application/json', true);
        echo json_encode($result);
    }

这是我的控制台得到的:

arguments: null
caller: null
length: 0
name: ""

我的目标是传递 document.getElementById('txtSearch').value,请帮助我。

感谢您的帮助:D

1 个答案:

答案 0 :(得分:3)

有关更新问题的一些注意事项,请参阅PHP代码:

  • 您提到错误parse error syntax error unexpected token T。这可能是因为PHP中的echo "TEST : $keyword";导致响应无效JSON。

  • 您在echo "TEST : $keyword";之后设置标题,这会抛出类似于Cannot modify header information - headers already sent by...的PHP警告

请删除echo "TEST : $keyword";行,然后再次尝试发送请求。这一次,打开开发人员工具的网络面板并检查发送/接收的数据。如果您仍然遇到问题,请使用服务器响应更新您的问题&amp;请求机构。您提供的信息越多,您就越有可能获得良好的解决方案。