使用cURL复制Ajax请求

使用cURL复制Ajax请求,ajax,symfony,curl,Ajax,Symfony,Curl,我试图用cURL重现Ajax请求,但总是失败。 服务器根本没有发送数据(下面示例中的my_数据) 我还尝试: curl \ --request POST \ --header 'Content-type: application/json' \ --header 'X-Requested-With: XMLHttpRequest' \ --url 'http://example.org/ajax_call' \ --data "my_data":"dat

我试图用cURL重现Ajax请求,但总是失败。 服务器根本没有发送数据(下面示例中的my_数据)

我还尝试:

 curl \
    --request POST \
    --header 'Content-type: application/json' \
    --header 'X-Requested-With: XMLHttpRequest' \
    --url 'http://example.org/ajax_call' \
    --data "my_data":"data_value"
最后:

 curl \
    --request POST \
    --header 'Content-type: application/json' \
    --header 'X-Requested-With: XMLHttpRequest' \
    --url 'http://example.org/ajax_call' \
    -F "my_data=data_value"
服务器永远不会捕获数据(在我的例子中是Symfony)。我猜cURL中的XMLHttpRequest格式有问题,我想知道我尝试做的是否可能(意味着通过cURL正确格式化XMLHttpRequest对象)

我在网上爬了几个小时,到目前为止还没有找到任何数据参数

谢谢你的帮助

编辑

在评论部分找到的解决方案是:

curl -v \
    --header 'X-Requested-With: XMLHttpRequest' \
    'http://example.org/ajax_call' \
    -d my_data=data_value

您所有的cURL请求都是有效的,可以处理。在Symfony app controller中,您可以通过请求对象的方法访问发送的JSON对象:

/**
*@Route(“/ajax\u call”,name=“some\u action”)
*/
公共函数someAction(请求$Request)
{
如果(“”!=$content=$request->getContent()){
$data=json_decode($content);
//一些行动…
}
返回新的响应(null,响应::HTTP\U BAD\U请求);
}
在开发人员工具栏中,您的请求如下所示:


路由是否设置为从您的域接收
POST
和跨源?如果您只需键入
curl会发生什么情况http://example.org/ajax_call“-d my_data=data_value
并让
curl
与服务器一起尝试解决它?如果有效,请使用
curl-v'重试http://example.org/ajax_call“-d my_data=data_value
然后查看为内容类型、接受和任何其他相关标题设置了哪些值。您提供的
curl
选项越少,它就越能为您解决问题。例如,如果添加
-d data=value
参数,
curl
将自动使其成为
POST
请求,而不指定
-X POST
。有时,它可以帮助API了解哪些有效,哪些无效,哪些设置重要,哪些设置被忽略。同样,@1252748也是正确的,再次检查
curl-v
的响应,您还可以尝试
curl'http://example.org/ajax_call?my_data=my_value“
要查看它是否响应url查询字符串paramsHow,您是否正在测试此symfony端?POST有效,但数据检索无效吗?你应该得到一些回应,是什么?
curl -v \
    --header 'X-Requested-With: XMLHttpRequest' \
    'http://example.org/ajax_call' \
    -d my_data=data_value