Javascript Ajax调用后端PHP脚本不工作

Javascript Ajax调用后端PHP脚本不工作,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我试着从这个答案。这是行不通的。php确实给了我一个带有提交按钮的文本输入框。Firefox浏览器开发人员控制台在我提交之前向我发送以下消息: “SyntaxError:缺少)在参数列表之后 未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 在我键入文本并提交后: “以windows-1252编码提交的表单无法对所有Unicode字符进行编码,因此用户输入可能会损坏。为避免此问题,应

我试着从这个答案。这是行不通的。php确实给了我一个带有提交按钮的文本输入框。Firefox浏览器开发人员控制台在我提交之前向我发送以下消息:

“SyntaxError:缺少)在参数列表之后

未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。”

在我键入文本并提交后:

“以windows-1252编码提交的表单无法对所有Unicode字符进行编码,因此用户输入可能会损坏。为避免此问题,应更改页面,以便通过将页面本身的编码更改为UTF-8或在表单元素上指定accept charset=UTF-8,以UTF-8编码提交表单。”

有什么建议吗

test.php有以下代码段:

<form action="javascript:void(0);" method="post">
    <input type="text" name="user" placeholder="enter a text" />
    <input type="submit" value="submit" />
</form>

<script type="text/javascript">
    $("form").submit(function(){
        var str = $(this).serialize();
        $.ajax('getResult.php', str, function(result){
            alert(result); // the result variable will contain any text echoed by getResult.php
        }
        return(false);
    });
</script>

$(“表格”)。提交(函数(){
var str=$(this.serialize();
$.ajax('getResult.php',str,函数(result){
alert(result);//结果变量将包含getResult.php所回显的任何文本
}
返回(假);
});
getResult.php具有以下特性:

<?php
    echo "The name you typed is: " . $_REQUEST['user'];
?>

您应该在getResult.php代码中使用$\u POST['user']而不是$\u REQUEST['user'],如下所示:

$("form").submit(function(){
    var str = $(this).serialize();
    $.post('getResult.php', str, function(result){
        alert(result); 
    });
    return(false);
});

警告消息表示您没有使用适当的文本编码。您通过表单发送的某些字符没有使用“windows-1252”编码(例如,Emojis)。 我建议您更改整个网站的编码,方法是在页面的标题部分内设置编码元标记,并删除您可能拥有的其他编码标记:


您应该在getResult.php代码中使用$\u POST['user']而不是$\u REQUEST['user'],如下所示:

$("form").submit(function(){
    var str = $(this).serialize();
    $.post('getResult.php', str, function(result){
        alert(result); 
    });
    return(false);
});

警告消息表示您没有使用适当的文本编码。您通过表单发送的某些字符没有使用“windows-1252”编码(例如,Emojis)。 我建议您更改整个网站的编码,方法是在页面的标题部分内设置编码元标记,并删除您可能拥有的其他编码标记:


首先,你错过了一个结束括号

    $.ajax('getResult.php', str, function(result){
        alert(result); // the result variable will contain any text echoed by getResult.php
    }
     ^ missing );
其次,使用POST请求而不是AJAX,如下所示:

$("form").submit(function(){
    var str = $(this).serialize();
    $.post('getResult.php', str, function(result){
        alert(result); 
    });
    return(false);
});
或者,如果要使用AJAX请求,请执行以下操作:

$("form").submit(function(){
    var str = $(this).serialize();
    $.ajax({
        type: 'POST',
        url: 'getResult.php',
        cache: 'false',
        data: str,

        success: function(result){
            alert(result)
        }
    });
    return(false);
});

首先,你错过了最后一个括号

    $.ajax('getResult.php', str, function(result){
        alert(result); // the result variable will contain any text echoed by getResult.php
    }
     ^ missing );
其次,使用POST请求而不是AJAX,如下所示:

$("form").submit(function(){
    var str = $(this).serialize();
    $.post('getResult.php', str, function(result){
        alert(result); 
    });
    return(false);
});
或者,如果要使用AJAX请求,请执行以下操作:

$("form").submit(function(){
    var str = $(this).serialize();
    $.ajax({
        type: 'POST',
        url: 'getResult.php',
        cache: 'false',
        data: str,

        success: function(result){
            alert(result)
        }
    });
    return(false);
});

您是否检查了控制台以查看响应中发生了什么?在developer中tools@Harry:参数列表后还有一个错误:“SyntaxError:missing“我马上注意到您的脚本中缺少a)。@user523234这是您的问题,那么您是否检查了控制台以查看响应中发生了什么?内显影剂tools@Harry:还有一个错误:“SyntaxError:missing)after argument list”立即我注意到您的脚本中缺少a)。@user523234这是您的问题,然后如果我放入);根据您的建议,我发现了一个新错误:ReferenceError:$不是defined@user523234可能您没有包括jQuery库。在脚本之前添加jQuery库,以便可以识别$,如下所示:
这就是问题所在,因为我使用的是ssl。Firefox将阻止任何不使用ssl的调用。。。。我会修好的。格雷西亚斯!如果我把它放进去;根据您的建议,我发现了一个新错误:ReferenceError:$不是defined@user523234可能您没有包括jQuery库。在脚本之前添加jQuery库,以便可以识别$,如下所示:
这就是问题所在,因为我使用的是ssl。Firefox将阻止任何不使用ssl的调用。。。。我会修好的。格雷西亚斯!