我的目标是在PHP中复制ASP.NET中的Hot Towel SPA框架。jQuery AJAX通过字符串返回调用PHP脚本
我的项目中有两个文件:show.js和displaystring.php。我基本上想要做的是返回displayString()函数中存在的任何东西。但是由于一系列不成功的尝试,我在show.js文件中插入了调试器语句(如下面的源代码所示)以找出错误。当我在谷歌浏览器中运行该项目并打开开发人员工具时(Ctrl + Shift + i),我发现程序流停止在调试器语句处(如预期的那样),并将鼠标悬停在success属性中的数据变量上,我发现displaytring.php文件返回的是整个html源代码,而不是仅返回“。$ _ POST('string');语句”。012 _ _ _ _ _ _ _ _ _ 。谁能告诉我哪儿我该怎么错了?谢谢。
show.js
define(function (require) {
var val = "";
//var moviesRepository = require("repositories/moviesRepository");
$.ajax({
url: "controllers/displaystring.php",
type: "post",
data: {input:"show"},
datatype: 'json',
success: function(data){
val = data;
debugger; // Debugger inserted here.
}});
return {
result: ko.observable(),
activate: function() {
this.result(val);
}
};
});
displaystring.ph p
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String Display</title>
</head>
<body>
<?php
function displayString() {
return "The string passed is: ".$_POST('string');
}
displayString();
?>
</body>
</html>
如果您将$ .ajax数据类型设置为'json',那么您的响应必须是json编码。 @imRcH答案是正确的 – vrunoa
好吧,如果我想传递并显示一个字符串值,那么代码应该是什么? – Razor
$ .ajax {datatype:“html”,... – vrunoa