我正在尝试加载一些存储为 knockout.js 表单的文本的 HTML。客户的服务器将对我的服务器使用 AJAX GET 调用,然后该服务器将返回表格的 HTML。现在,正在返回表格,但是它的格式类似于 knockout.js 尚未加载但我没有收到任何错误(下拉列表未填充,表格的 foreach 循环显示空白行,显示辅助 div仅在按下提交按钮后才应显示)。
当我在这个页面上有 HTML 时,它可以工作,所以我很确定它不是表单中的错误代码。我唯一能想到的是,淘汰赛对单引号和双引号很挑剔,尽管我觉得这会导致错误。现在我正在我的服务器上进行测试,所以同源策略目前不应该成为问题。
这是最初加载的页面
//main.html
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<!-- I also tried to include the knockout file includes here but made no difference -->
<script>
<!-- call to get HTML for knockout form -->
$.ajax({
type: 'GET',
url: '/orders/return_form',
data: "true",
success: function(response) { // on success..
$('#order_div').html(response); // update the DIV
}
})
</script>
<div id = "order_div">
<!-- returned knockout form goes here -->
</div>
<script src="knockout.js"></script>
<script src="knockout_info.js"></script> <!-- MVVM file -->
<script src = "Knockout-Validation/Src/knockout.validation"</script>
这是返回表格代码的代码
//orders/return_form
if($_GET['true']){
echo "table code here ";
//I tried to encode this before but got all kinds of extra markup due to whitespace and other misc. characters
//or
$form = new stdClass;
$form->table = "<form method='post'>
<input type='textbox' name='text'/>
<input type='submit' name='textsubmit'/>
</form>";
echo $form->table;
}
如果我包含表格而不是调用它的代码。然而,这是一个相当长的形式,考虑到这段代码将在别人的服务器上调用我的,我想将他们的代码保持在最低限度。