无法通过ajax将字符串参数传递给php函数

时间:2015-01-25 05:11:08

标签: javascript php jquery ajax

我正在对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) { }

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果请求的内容类型为application/json; charset=utf-8,Php将不会填充$ _POST数组,您也不会发送json。只需删除内容类型行,即可设置application/x-www-form-urlencoded的正确(默认)内容类型。