使用ajax POST发送的XML未被接收服务器端(Laravel 5)

时间:2015-09-09 14:25:05

标签: php jquery ajax xml laravel-5

我尝试使用ajax POST请求发送XML,但服务器端没有收到任何数据。

我使用jQuery发送数据:

<script>
    $('.buttonXML').click(function(){
        $.ajax({
            url: "/test142"
            , type: "POST"
            , contentType: "text/xml"
            , processData: false
            , data: {xml: '<test></test>'}
            , success: function(){
                console.log('done');
            }
        });
    });
</script>  

我的php没有收到任何数据:

public function post()
{
    DD(Input::get('xml'));
}

输出'null'

public function post()
{
    DD(Input::all());
}

这会输出一个空数组

任何人都可以看到我错过的东西。

我已禁用Csrf保护以进行测试。

2 个答案:

答案 0 :(得分:2)

问题很可能就是将其作为RAW XML POST发布,因此Laravel不会将其提取(对此而言$_POST都不是)。用它来进行RAW POST。

$xml = file_get_contents("php://input");

答案 1 :(得分:0)

尝试将数据作为XML字符串发送,并转储$ _POST变量以查看是否发生了某些事情。

data: {xml: '<test></test>'}

变化:

data: '<test></test>'

<强>已更新

找到了有用的答案:https://stackoverflow.com/a/3099668/4015178