解析错误语法错误简单AJAX上的意外标记


parse error syntax error unexpected token on simple AJAX

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

我想把AJAX中的一个变量(document.getElementById('txtSearch').value)传递给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

关于您更新的问题,需要注意的几件事,在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";行,然后尝试再次发送请求。这一次,请打开开发人员工具的网络面板,并检查发送/接收的数据。如果您仍然有问题,请使用服务器响应更新您的问题&请求主体。你提供的信息越多,你就越有可能得到一个好的解决方案。