首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向PHP提交时获取AJAX错误

向PHP提交时获取AJAX错误
EN

Stack Overflow用户
提问于 2013-01-22 04:24:28
回答 2查看 113关注 0票数 0

我有一个基本的表单,在那里我提交了一个facebook朋友的ID,php返回我的名字,我的FB照片,我朋友的名字和我朋友的fb照片。这是我的相关代码

代码语言:javascript
复制
<form name="input">
<input type="text" name="name" id="name"/>
<input id="submit" type="submit" class="btn btn-info" value="Submit"/>
</form>

<div class="row" id="graphArea"></div>

JAVASCRIPT

代码语言:javascript
复制
$('#submit').click(function(e){
    e.preventDefault();
    var formData = $('form').serialize();
    submitForm(formData);
});

function submitForm(formData){
$.ajax({    
    type: 'POST',
    url: 'graph.php',        
    data: formData,
    dataType: 'json',
    cache: false,
    timeout: 7000,
    success: function(data) { 
        $("#graphArea").load("graph.php");
        $(window).scrollTop($("#graphArea").offset().top);
        $("#graphArea").fadeIn(500);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("There was an error");          
    },              
    complete: function(XMLHttpRequest, status) {            

        $('form')[0].reset();
    }
});

graph.php

代码语言:javascript
复制
<?php
    require 'resources/plugin/facebook-php-sdk/src/facebook.php';
    //..some facebook authentication stuff
    $friend = $_POST['name'];
    $basicInfo = $fb->api('me?fields=friends.uid(' . $friend . ').fields(first_name,name),first_name,name');
 ?>
<hr>
<br />
<div class="span2 offset2"><h3>
<?php
    echo $basicInfo['name'] . "</h3></div><div class=\"span2\">";
    echo "<img src='https://graph.facebook.com/" . $user . "/picture?type=large'>";
    echo "</div><div class=\"span2\">";
    echo "<img src='https://graph.facebook.com/" . $friend . "/picture?type=large'></div>";
    echo "<div class=\"span2\"><h3>" . $basicInfo['friends']['data'][0]['name'];
?>
</h3>
</div>

每次提交表单时,我都会得到错误部分,它会提醒“存在错误”。然而,通过谷歌Chrome Javascript控制台,我点击网络,然后预览,我看到了我想要的结果!这是我第一次处理PHP和AJAX,我希望能得到所有的帮助。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 04:34:22

graph.php的ajax调用包括dataType: 'json',但是graph.php似乎输出了一个HTML片段。此外,AJAX成功处理程序对graph.php进行另一次调用--这是不必要的,因为您刚刚调用graph.php来提交表单。相反,您应该使用返回的HTML并将其注入DOM:

代码语言:javascript
复制
$.ajax({    
    type: 'POST',
    url: 'graph.php',        
    data: formData,
    // REMOVED dataType
    cache: false,
    timeout: 7000,
    success: function(data) { 
        $("#graphArea").html(data);   // CHANGED
        $(window).scrollTop($("#graphArea").offset().top);
        $("#graphArea").fadeIn(500);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("There was an error");          
    },              
    complete: function(XMLHttpRequest, status) {            

        $('form')[0].reset();
    }
});
票数 1
EN

Stack Overflow用户

发布于 2013-01-22 04:34:53

在您作为dataType: 'json',提供的javascript调用中,在返回htmlphp中,这将引发错误。如果希望响应在html中,请将数据类型更改为html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14451561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档