Javascript Ajax调用只在Chrome中获取部分数据,所有数据都在IE和Firefox中

Javascript Ajax调用只在Chrome中获取部分数据,所有数据都在IE和Firefox中,javascript,php,ajax,google-chrome,parse-platform,Javascript,Php,Ajax,Google Chrome,Parse Platform,首先,这在Firefox和Internet Explorer中非常有效。我有一个ajax调用,用于检索数据(审查和评级)。这就是profile.php的输出或数据。问题是,在Chrome中,我没有返回$review变量。除此之外我什么都有。它甚至没有出现在Chrome开发者工具页面的源代码中 它在Firefox和IE中正常工作,没有任何问题 Chrome中显示提交文本的唯一位置是“网络”下“标题”选项卡下的“请求有效负载”部分。我试过搞乱contenttype,但它只会让事情变得更糟 表格: &

首先,这在Firefox和Internet Explorer中非常有效。我有一个ajax调用,用于检索数据(审查和评级)。这就是profile.php的输出或数据。问题是,在Chrome中,我没有返回$review变量。除此之外我什么都有。它甚至没有出现在Chrome开发者工具页面的源代码中

它在Firefox和IE中正常工作,没有任何问题

Chrome中显示提交文本的唯一位置是“网络”下“标题”选项卡下的“请求有效负载”部分。我试过搞乱contenttype,但它只会让事情变得更糟

表格:

<div class="wrapper" id="reviewwrap"><form id ="enterreview" name="enterreview" method="post" action="/upload.php?<?php echo $whoseprofile;?>"><textarea maxlength="4000" class="reviewinput" id="review" name = "enterreview" placeholder="Write your review!"></textarea><div class="ratingcontainer"><input id="inputy" type="number" class="rating" name = "stars" min=0 max=5 step=1 data-size="xs" data-show-caption="false" data-show-clear="false"><button type="submit" class="btn btn-success" name="enterreview" id="reviewbutton">Review</button></form></div>
下面是upload.php:

<?php 
require 'autoload.php';

$app_id = (censored);
$rest_key = (censored);
$master_key = (censored);

use Parse\ParseClient;
use Parse\ParseObject;
use Parse\ParseQuery;
use Parse\ParseACL;
use Parse\ParsePush;
use Parse\ParseUser;
use Parse\ParseInstallation;
use Parse\ParseException;
use Parse\ParseAnalytics;
use Parse\ParseFile;
use Parse\ParseCloud;
use Parse\ParseRelation;
use Parse\ParseSessionStorage;

session_start();
ParseClient::initialize( $app_id, $rest_key, $master_key );

$currentUser = ParseUser::getCurrentUser();

if ($currentUser) {

//If it's a review
if(isset($_POST['enterreview'])){
header("Content-type:text/HTML");
$review = $_POST['enterreview'];
$star = $_POST['stars'];
$whoseprofile = $_SERVER["QUERY_STRING"];

$reviews = new ParseObject("Reviews");
$reviews->set("text", $review);
$reviews->set("User", $whoseprofile);
$reviews->set("Rating", $star);

$reviews->save();

        //POPULATE REVIEWS

        $query = new ParseQuery('Reviews');

    $query->equalTo("User", $whoseprofile);
    $query->descending('createdAt');
    $query->limit(6);

    $results = $query->find();

    for ($i = 0; $i < count($results); $i++) { 

    $review = $results[$i]->get("text"); //This is the problem variable.
    $date = $results[$i]->getCreatedAt();
        $commentrating = intval($results[$i]->get("Rating"), 10);   
        header('Content-Type: text/html; charset=UTF-8');
         echo '<input id="input-id' . $i . '" type="number" class="rating" min=0 max=5 step=1 data-size="xs" data-show-caption="false" data-show-clear="false" readonly="false">
    <p class="review">' . $review . '</p>' . //The problem variable.
    '<script>

        $("#input-id' . $i . '").rating("update", ' . $commentrating . ');

    </script>'
    ;
}

exit();
}




} else {

header("Location: /login");
exit();

}

?>

您的AJAX请求是否在所有浏览器中都返回正确的数据?换句话说,问题是Chrome没有获取数据,或者没有显示数据?它在IE和Firefox中返回所有正确的数据。在Chrome中,它会正确地返回用户随审核提交的评分;然而,评论本身并没有在Chrome中返回。我想知道
标题(“内容类型:text/HTML”)需要是
标题(“内容类型:text/html”)我会检查服务器日志,看看请求命中了什么。您的代码有主要错误:您在循环中执行
header()
调用,同时执行
echo
调用。这将用“headers ready sent”警告充斥您的输出。如果它没有被淹没,那么您的php安装将在禁用警告/错误的情况下运行,这通常是一件不好的事情:如果您只是禁止任何错误,您就无法调试东西。
<?php 
require 'autoload.php';

$app_id = (censored);
$rest_key = (censored);
$master_key = (censored);

use Parse\ParseClient;
use Parse\ParseObject;
use Parse\ParseQuery;
use Parse\ParseACL;
use Parse\ParsePush;
use Parse\ParseUser;
use Parse\ParseInstallation;
use Parse\ParseException;
use Parse\ParseAnalytics;
use Parse\ParseFile;
use Parse\ParseCloud;
use Parse\ParseRelation;
use Parse\ParseSessionStorage;

session_start();
ParseClient::initialize( $app_id, $rest_key, $master_key );

$currentUser = ParseUser::getCurrentUser();

if ($currentUser) {

//If it's a review
if(isset($_POST['enterreview'])){
header("Content-type:text/HTML");
$review = $_POST['enterreview'];
$star = $_POST['stars'];
$whoseprofile = $_SERVER["QUERY_STRING"];

$reviews = new ParseObject("Reviews");
$reviews->set("text", $review);
$reviews->set("User", $whoseprofile);
$reviews->set("Rating", $star);

$reviews->save();

        //POPULATE REVIEWS

        $query = new ParseQuery('Reviews');

    $query->equalTo("User", $whoseprofile);
    $query->descending('createdAt');
    $query->limit(6);

    $results = $query->find();

    for ($i = 0; $i < count($results); $i++) { 

    $review = $results[$i]->get("text"); //This is the problem variable.
    $date = $results[$i]->getCreatedAt();
        $commentrating = intval($results[$i]->get("Rating"), 10);   
        header('Content-Type: text/html; charset=UTF-8');
         echo '<input id="input-id' . $i . '" type="number" class="rating" min=0 max=5 step=1 data-size="xs" data-show-caption="false" data-show-clear="false" readonly="false">
    <p class="review">' . $review . '</p>' . //The problem variable.
    '<script>

        $("#input-id' . $i . '").rating("update", ' . $commentrating . ');

    </script>'
    ;
}

exit();
}




} else {

header("Location: /login");
exit();

}

?>