当我尝试通过ajax请求向API发送数据(url)时,PHP CI控制器未考虑$ _GET中的所有参数。它只接受&。
传递参数时是否有错误?请帮忙。我尝试传递直接url和encodeURI。
jQuery代码
$.ajax({
type: "GET",
url: "<?= ROOT?>welcome/ajaxapiget",
data: encodeURI(http://localhost/webapi/list?categories[]=3&categories[]=12),
cache: false,
success: function (data) {
alert(data);
}
});
PHP
function ajaxapiget() {
$url = $_GET;`//its getting url as http://localhost/webapi/list?categories[]=3`
$curl = curl_init();
........
........
response $response;
}
也尝试过这样
$.ajax({
type: "GET",
url: "<?= ROOT?>welcome/ajaxapiget",
data: 'url=http://localhost/webapi/list?categories[]=3&categories[]=12)',
cache: false,
success: function (data) {
alert(data);
}
});
PHP
function ajaxapiget() {
$url = $_GET(url);`//its getting url as http://localhost/webapi/list?categories[]=3`
$curl = curl_init();
........
........
response $response;
}
当我提醒
发送请求之前
url=http://localhost/webapi/courselist?categories[]=15&categories[]=17
来自控制器的响应(警告ajax成功)
$url = $_GET('url');
echo $url
警报响应
http://localhost/webapi/courselist?categories[]=15
答案 0 :(得分:0)
尝试一下
jQuery代码
$.ajax({
type: "GET",
url: "<?= ROOT?>welcome/ajaxapiget",
data: {url:'http://localhost/webapi/list?categories[]=3&categories[]=12'},
cache: false,
success: function (data) {
alert(data);
}
});
PHP代码
function ajaxapiget() {
$url = $this->input->get('url');//Getting $url as http://localhost/webapi/list?categories[]=3&categories[]=12
$curl = curl_init();
........
........
response $response;
}
在Codeingiter中使用$this->input->get()
代替$_GET[]
答案 1 :(得分:0)
最后我用encodeURIComponent
$.ajax({
type: "GET",
url: "<?= ROOT?>welcome/ajaxapiget",
data: 'url=http://localhost/webapi/list?' + encodeURIComponent('categories[]=15&categories[]=17'),
cache: false,
success: function (data) {
alert(data);
}
});
现在的结果是
http://localhost/webapi/courselist?categories[]=15&categories[]=17
encodeURIComponent将使用特殊含义对所有内容进行编码,因此您 将其用于URI的组成部分