我正在对codeigniter php函数进行以下jquery ajax调用:
$.ajax({
type:"POST",
url: "Ajax/getHtml",
data: { u : 'http://stackoverflow.com/' },
contentType: "application/json; charset=utf-8",
dataType: 'html',
success: function(data) {
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('error');
console.log(jqXHR,textStatus, errorThrown);
}
});
请求的php函数是:
public function getHtml() {
var_dump($_POST);
$url = $_POST['u'];
$result = file_get_contents($url);
echo ($result);
}
var_dump($ _ POST)产生:
array(0) { }
我该如何解决这个问题?
答案 0 :(得分:1)
如果请求的内容类型为application/json; charset=utf-8
,Php将不会填充$ _POST数组,您也不会发送json。只需删除内容类型行,即可设置application/x-www-form-urlencoded
的正确(默认)内容类型。