使用ajax不返回JSON对象

我开始玩JSON了,我一直遇到麻烦,Google和SO都没有帮助我 。 我有一个非常简单的PHP脚本:</ p>

 &lt;?php 

$ email = $ _REQUEST ['email'];

if(strpos($ email) ,'@')!== false){
$ data = array('status'=&gt; 1,'msg'=&gt;'已发送');
echo json_encode($ data);
} \ n
else {
$ data = array('status'=&gt; 0,'msg'=&gt;'无法发送');
echo json_encode($ data);

}

?&gt;
</ code> </ pre>

我有以下ajax调用:</ p>

   $('。submit')。click(function(){
$('div.load')。html('&lt; img src =“images / load.gif”alt =“Loading ...”id = “loading”/&gt;'); //编辑

//创建要发送的变量
var name = $('#name')。val();
email = $('#email' ).val();
phone = $('#phone')。val();

$ .ajax({
type:“POST”,
dataType:“jason”,
\ n data:{
name:name,
email:email,
phone:phone
},

url:“test.php”,

success:function(data){

$('。contact')。append(data)

}
});

返回false;

});
</ code> </ pre>

如果没有JS调用php(并且表单不包含正确的电子邮件地址),那么我得到以下对象(这就是我想要的!):{“status”:0,“msg “:”无法发送“} </ p>

但是,如果使用JS(ajax)提交,则永远不会收到JSON对象。 有什么想法吗?</ p>

谢谢!</ p>
</ div>

展开原文

原文

I am beginning to play around with JSON, and I keep running into trouble that neither Google nor SO have helped me with. I have a very simple PHP script:

<?php

$email = $_REQUEST['email'];

if ( strpos($email,'@') !== false ) {
    $data = array('status' => 1 , 'msg' => 'Sent') ;
    echo json_encode( $data ) ;
} 

else {
    $data = array('status' => 0 , 'msg' => 'Failed to send') ;
    echo json_encode( $data ) ; 
}


?>

I have the following ajax call:

$('.submit').click(function() {
    $('div.load').html('<img src="images/load.gif" alt="Loading..." id="loading" />'); //EDIT

    //creation of variables to send
    var name = $('#name').val();
        email = $('#email').val();
        phone = $('#phone').val();

    $.ajax({
        type: "POST",
        dataType: "jason",

        data: {
            name: name,
            email: email,
            phone: phone
        },

        url: "test.php",

        success: function( data ) {

            $('.contact').append( data )

        }
    });

    return false; 

});

If the php gets called without JS (and the form doesn't contain a proper email address), then I get the following object (which is what I want!): {"status":0,"msg":"Failed to send"}

However, if submitting with JS (ajax), the JSON object never gets received. Any ideas?

Thanks!

dtmbc1606
dtmbc1606 我实际上并不想追加该对象。但在我实际使用该对象之前,我想确保我正确地接收它
8 年多之前 回复
dongshan3806
dongshan3806 toolong
8 年多之前 回复
dslpofp041310584
dslpofp041310584 PHP标头是否设置为发送JSON数据?
8 年多之前 回复
douyanti2808
douyanti2808 这可能不是问题,但是你没有dataType中的拼写错误吗?我不知道任何杰森。
8 年多之前 回复
dougekui1518
dougekui1518 请注意,您错误输入了ajax数据类型param(应该是json而不是jason)
8 年多之前 回复

1个回答



  dataType:“jason”,
</ code> </ pre>

阅读: </ p>

  dataType:“json”,
</ code> </ pre>

; - )</ p>

另外,你有一些半冒号应该有逗号:</ p>

  var name = $('#name')。val(),//这两行应该是 逗号终止于
电子邮件= $('#email')。val(),//使其成为正确的var声明
phone = $('#phone')。val();
</ code> </ pre>
</ div>

展开原文

原文

dataType: "jason",

Read:

dataType: "json",

;-)

Also, you have some semi colons where there should be commas:

var name = $('#name').val(),    // These two lines should be comma-terminated to
    email = $('#email').val(),  // make this a correct var declaration
    phone = $('#phone').val();

duankang5882
duankang5882 例如,您可以$('。contact')。append(“<div> Status:”+ data.status +“; Message:”+ data.msg +“</ div>”);
8 年多之前 回复
dousao9569
dousao9569 too long
8 年多之前 回复
duanluanhui8348
duanluanhui8348 你想怎么展示它? 你不能真正只是将一个非DOM对象附加到DOM,它需要某种形式的字符串表示...
8 年多之前 回复
doudui1850
doudui1850 too long
8 年多之前 回复
doulu3865
doulu3865 你在console.log(数据)时看到了什么; 在成功的功能? 另外,尝试添加错误处理程序
8 年多之前 回复
dsyrdwdbo47282676
dsyrdwdbo47282676 哈哈,好看的。 这是你看到的唯一的错误,因为已经修复了,我仍然没有得到json对象返回:(
8 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问