【发布时间】:2017-07-11 00:01:19
【问题描述】:
我有一个ajax 请求,它获取一些数据并返回我在页面上打印出来的html 响应。问题是由于某种原因html 响应没有被打印,只有文本数据。当我在浏览器控制台中检查时,正在返回正确的响应。
这里是ajax 函数:
function getRating(work_id, selectorToWriteTo)
{
$.ajax({
url: '/read/getRatingsForGivenWork',
type: 'GET',
dataType: 'html',
async: true,
data: { field1: work_id},
success: function (data) {
//your success code
$(selectorToWriteTo).html(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Error: " + thrownError);
}
});
}
返回html数据的函数:
public function getRatingsForGivenWork()
{
$ratings = $this->getModel ( 'read', 'getRatingsForGivenWork', $_GET['field1']);
if($ratings !== null)
{
print "<div class=\"ui small star rating\" data-rating=\"" . $ratings ."\" data-max-rating=\"5\">Leave rating</div>";
}
else
{
print 0;
}
}
我在哪里调用 ajax 函数:
<div class="extra">
<script>
document.write(getRating(<?php echo $row['works.work_id']; ?>, '.extra'));
</script>
</div>
Chrome 开发者工具中的响应:
Chrome 控制台:
返回正确的响应,但它不会在页面上打印 html。有谁知道这是为什么?
【问题讨论】:
-
实际上,我认为它不能解决您的问题,但您正在覆盖您的 JavaScript 代码,因为它位于
div中。您能告诉我们 Chrome 控制台中的内容吗? -
我已经用 Chrome 控制台响应的屏幕截图编辑了我的问题
-
这不是您显示的控制台...您显示的是网络 > 响应的屏幕截图。我需要控制台屏幕。
-
@Seblor 啊,我的错!我现在已经包含了控制台屏幕截图。
-
尝试从
div中删除<script>...</script>。