【发布时间】:2014-01-03 19:28:25
【问题描述】:
我的目标是在 PHP 中从 ASP.NET 复制 Hot Towel SPA 框架。
我的项目中有两个文件:show.js 和 displaystring.php。我基本上想要做的是返回 displayString() 函数中存在的任何内容。但是由于一系列的尝试都没有成功,我在shows.js文件中插入了debugger语句(如下源代码中所标注的)来找出问题所在。当我在 Google Chrome 中运行项目并打开开发人员工具(Ctrl + Shift + i)时,我看到程序流在调试器语句处停止(如预期的那样),并且当我将鼠标悬停在成功属性中的数据变量上时,我看到 displaystring.php 文件返回给我整个 html 源代码,而不是只返回 ".$_POST('string'); 语句。
我在互联网上浏览了许多解决方案,但无济于事。谁能告诉我我到底哪里错了?谢谢。
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);
}
};
});
显示字符串.php
<!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 答案是正确的
-
好的,如果我想传递并显示一个字符串值,那么代码应该是什么?
-
$.ajax{ 数据类型:"html",...
-
我自己找到了问题的解决方案。我已经在答案列表中发布了解决方案。你可以在那里检查。无论如何,谢谢你的帮助。 :-)
-
不客气@Razor
标签: javascript php jquery ajax hottowel