jQuery $.ajax默认 contentType 是application/x-www-form-urlencoded这意味着 jQuery 将对内容进行编码。但是,由于您指定了不同的 contentType,因此不会对数据进行编码,因此您必须自己进行编码。(jquery ajax 编码数据)
尝试encodeURIComponent。(URL 为 AJAX 请求在 jQuery 中编码一个字符串)
通过将特定字符的每个实例替换为表示字符的 UTF-8 编码的一个、两个、三个或四个转义序列来编码统一资源标识符 (URI) 组件(对于由两个“代理”组成的字符,只有四个转义序列“ 人物)。
例子:
var 编码 = encodeURIComponent(str);
完整的解决方案:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css"/>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css"/>
<script>
$(document).ready(function() {
$("#autocomplete").autocomplete({
source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"],
close: function (event, ui) {
$.ajax({
url: 'yourAjaxRequestHandleFile.php',
data: 'q=' + encodeURIComponent($('#autocomplete').val()),
type: 'get',
success: function (ajxResponse) {
alert(ajxResponse);
}
});
}
});
});
</script>
</head>
<body>
<label for="autocomplete">Select a programming language:</label>
<input id="autocomplete">
</body>
</html>
// 这里是 PHP 代码
<?php
// Get Send Ajax Data
$q = $_GET['q'];
// Show Ajax Data and return to Ajax
echo "You submitted $q ";
?>