使用的是jQuery 3.1.1。在$ .get调用中,如果我传递单个字母a(带有encodeURI的大写或小写),则被调用的PHP模块会忽略它。接受并处理任何其他字母。如果我传递2个字母,即使传递的字符串以字母a开头,它们也会被正确处理。我可以通过Firebug看到字母a被传递给被调用的PHP模块,但是没有响应或错误指示。任何想法或建议将非常感激。这是被调用的PHP模块的前几行:
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<response>";
$error = FALSE;
// the first few letters being passed to this module
if (!empty($_GET['params']))
{
$first_few = urldecode($_GET['params']);
}
else
{
$error = TRUE;
echo '<error>parameters</error>';
}
其他信息:
主叫代码是:
var params = "params=";
params += String ($('#dogname_start').val());
params = encodeURI(params);
$('#add_appointment').submit(function(event)
{
event.preventDefault();
});
$.get(
'./modules/get_dognames.xml.php',
params,
handle_response,
"xml"
); // end get
我有$ .ajaxSetup({cache:false});设置
更多信息,感谢您的关注和疑问:
运行的环境是: 。 Windows 7 - 64位 。通过XAMPP的本地主机(Apache,PHP和MySQL) 。 Firefox(50.1.0)和IE11 - 这两个问题都是一样的。
使用普通的PHP(5.5.3)。
终于找到了问题 - 它是一个&符编码为XML响应数据中的ASCII代码 - 它与字母本身无关 - 它恰好发生了使用字母a的数据库查找返回了一些带有&符号的数据,在将XML数据流发送回调用模块之前,我将&符号更改为ASCII字符。
感谢那些试图提供帮助的人。