Javascript Ajax调用后端PHP脚本不工作
我试着从这个答案。这是行不通的。php确实给了我一个带有提交按钮的文本输入框。Firefox浏览器开发人员控制台在我提交之前向我发送以下消息: “SyntaxError:缺少)在参数列表之后 未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 在我键入文本并提交后: “以windows-1252编码提交的表单无法对所有Unicode字符进行编码,因此用户输入可能会损坏。为避免此问题,应更改页面,以便通过将页面本身的编码更改为UTF-8或在表单元素上指定accept charset=UTF-8,以UTF-8编码提交表单。” 有什么建议吗 test.php有以下代码段:Javascript Ajax调用后端PHP脚本不工作,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我试着从这个答案。这是行不通的。php确实给了我一个带有提交按钮的文本输入框。Firefox浏览器开发人员控制台在我提交之前向我发送以下消息: “SyntaxError:缺少)在参数列表之后 未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。” 在我键入文本并提交后: “以windows-1252编码提交的表单无法对所有Unicode字符进行编码,因此用户输入可能会损坏。为避免此问题,应
<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的调用。。。。我会修好的。格雷西亚斯!