嗨,我在下面的脚本中遇到了问题。我认为问题在于需要通过AJAX发送到php的数据。
jQuery的
$('.send').live("click", function(){
$.ajax({
url:'foobar.php',
type:'post',
data: 'id=' + $(this).attr('id'),
dataType:'json',
contentType: 'application/json; charset=utf-8',
success: function(data) {
switch (data.status)
{
case "a":
alert(data.text);
break;
case "b":
alert(data.text);
break;
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert ("error: "+textStatus);
}
})
}
并且,PHP
$id = $_REQUEST['id'];
switch ($id) {
case "foo":
$data["status"] = "a";
$data["text"] = "foo-foo";
echo json_encode($data);
break;
case "bar":
$data["status"] = "b";
$data["text"] = "bar-bar";
echo json_encode($data);
break;
}
但是,如果我这样做
//data: 'id=' + $(this).attr('id'),
并改变这个
$id = 'foo';
脚本工作正常。我需要做些什么才能使以上两个脚本都能正常工作?提前致谢。
我将我的评论作为答案。
除了使用已弃用的jQuery API外,其他人没有指出的是以下内容:
您在下一行中正在做什么:
contentType: 'application/json; charset=utf-8',
是您向服务器保证HTTP实体将是JSON字符串,而事实并非如此。它实际上是通常的百分位数编码的字符串。(a=b&c=d&e=f
)。
如果删除该行,浏览器会将默认值Content-Type发送为application/x-www-url-form- encoded
。这将触发PHP如此解析HTTP实体,并为您$_REQUEST
正确填充数组。
我正在使用jQuery滑块插件。滑块的当前选定值应该用AJAX发送到服务器端脚本。 目前我有一个错误的行为。当前选择的值总是在用Ajax发送的值之前或之后的一个值。 例如:如果滑到值5/50,它将向服务器端脚本发送“6”而不是“5”。 我做了一把JS小提琴。只需在developers network选项卡下查看。
问题内容: 我正在尝试完成一些ajax请求,以在不刷新的情况下将textarea插入数据库。这是我的代码: HTML: JS: 我的问题: 1)如何将文本区域的内容发送到onclick函数中? 2)我如何转义/ urlencode等。因此保留了换行符 问题答案: 您的代码有一些问题,例如用于串联 试试这个 -
交互过程中,发送请求是第一步。那么,我们将如何构造一个请求呢? 这一章节,我们将一步一步来构建一个 Ajax 请求。学习本节,你将学会: 如何通过 XMLHttpRequest 和 ActiveXObject 来构造一个通用的 xhr 对象。 如何通过 xhr 对象来发送 GET、 POST 等请求。 Content-type 在 Ajax 数据发送中的作用。 那么,接下来让我们进入本节的学习吧。
问题内容: 我正在Ajax调用中发送一些数据。值之一是设置为FALSE的布尔值。在Ajax调用的PHP脚本中,始终将其评估为TRUE。有任何想法吗? 在上面的Ajax中调用的脚本vote.php中,我检查了布尔值: 但条件始终满足。 问题答案: 帖子只是文字,文字在php中的评估结果为true。一种快速的解决方法是发送零而不是false。您也可以在PHP中用引号引起来。 然后,您可以传递正确/错误
我正在尝试使用ajax发送post请求,但始终出现以下错误: XMLHttpRequest无法加载http://192.168.1.123:8080。对预检请求的响应无法通过权限改造检查:请求的资源上不存在“访问控制允许源”标头。因此不允许访问源“http://localhost:8080”。 这是我的代码