Php $.ajax post无法正常工作
我尝试使用jQuery执行AJAX请求,使用以下代码:Php $.ajax post无法正常工作,php,jquery,ajax,Php,Jquery,Ajax,我尝试使用jQuery执行AJAX请求,使用以下代码: $.ajax({ type: 'POST', url: './ajax/mostra_duv.php', data: 'pag=1&teste=deu', cache: false, contentType: false, processData: false }) .done(function(data) { if(data!='') { $("#re
$.ajax({
type: 'POST',
url: './ajax/mostra_duv.php',
data: 'pag=1&teste=deu',
cache: false,
contentType: false,
processData: false
})
.done(function(data) {
if(data!='')
{
$("#resumoduvida").html(data);
}
else
{
$("#resumoduvida").html('<p>Desculpe, houve um problema na conexão ao servidor. Tente novamente</p>');
}
})
.fail(function() {
$("#resumoduvida").html('<p>Desculpe, houve um problema na conexão ao servidor. Tente novamente</p>');
});
$.ajax({
键入:“POST”,
url:“./ajax/mostra_duv.php”,
数据:'pag=1&teste=deu',
cache:false,
contentType:false,
processData:false
})
.完成(功能(数据){
如果(数据!='')
{
$(“#resumoduvida”).html(数据);
}
其他的
{
$(“#resumoduvida”).html(“Desculpe,houve um problema na conexão ao servicdor.Tente novatemente”);
}
})
.fail(函数(){
$(“#resumoduvida”).html(“Desculpe,houve um problema na conexão ao servicdor.Tente novatemente”);
});
然后,mostra_duv.php只是调用print\r($\u POST)代码>导致空数组
我希望得到$\u POST['pag']
和$\u POST['teste']
,其值对应于请求(分别为1和'deu')
感谢您的帮助!谢谢 您收到的数据是什么
我认为您错过了数据类型:“html”
在ajax内部
$.ajax({
type: 'GET',
dataType: 'html',
url: './ajax/mostra_duv.php',
data: 'pag=1&teste=deu',
cache: false,
contentType: false,
processData: false
})
只是简单的代码来处理这一点
$.ajax({
type: 'POST',
url: 'pageToYourScript.php',
data: {page: 1, test: 'test'},
success: function(data){
console.log(data);
},
error: function(jqXHR){
console.log(jqXHR);
}
});
更改值,并处理返回的数据或错误(如果有)。我认为使用:
$.post('./ajax/mostra_duv.php',{pag':1,'teste':'deu'})
.完成(功能(数据){
如果(数据!='')
{
$(“#resumoduvida”).html(数据);
}
其他的
{
$(“#resumoduvida”).html(“Desculpe,houve um problema na conexão ao servicdor.Tente novatemente”);
}
})
.fail(函数(){
$(“#resumoduvida”).html(“Desculpe,houve um problema na conexão ao servicdor.Tente novatemente”);
});
你可能也会发现这同样有效
根据您最后的评论强>
除非您只打算支持实现(以前称为)XMLHttpRequest级别2的浏览器,否则无法通过Ajax上传文件。有一些插件可以帮助实现这一点;我个人最喜欢的是Mike Alsup的表单插件(因为它还添加了其他帮助函数):为什么要设置contentType:false
?只需使用默认的contentType
@Barmar即可,谢谢。我删除了关于它的评论。我总是对此感到困惑。@Barmar因为我也想通过AJAX上传文件。。。这个使用静态数据的初始测试只是为了简化它,但是如果您将字符串作为数据传递,您认为如何将文件转换为字符串?您需要formData。然后您需要使用contentType:“多部分/表单数据”
选项dataType
对参数的发送方式没有影响,它只用于解释响应。@Barmar是的,先生,但他得到的响应是html格式的,这就是为什么他认为这可能会导致问题的原因。如果没有数据类型,它将如何运行?默认情况下,$。ajax
查看响应中的内容类型
,以确定数据类型
。因此,如果服务器发送文本/html
,它将像您发送数据类型:“html”
。他添加了一条评论,说他需要$的灵活性。ajax
,因为他正在向其中添加文件上载。@Barmar谢谢。我可能不会注意到。@tower取决于您所说的“支持文件上载”是什么意思。不是每个浏览器都支持Ajax文件上传:-有允许你模仿行为的多边形填充,通常通过发布到隐藏的iFrame。也需要上传文件@您可以使用一个简单的插件,例如,和,下面的文章可能会提供更多帮助,
$.post('./ajax/mostra_duv.php', { 'pag': 1, 'teste': 'deu' })
.done(function(data) {
if(data!='')
{
$("#resumoduvida").html(data);
}
else
{
$("#resumoduvida").html('<p>Desculpe, houve um problema na conexão ao servidor. Tente novamente</p>');
}
})
.fail(function() {
$("#resumoduvida").html('<p>Desculpe, houve um problema na conexão ao servidor. Tente novamente</p>');
});