2017-06-13 26 views
0

私はcURLでAjaxリクエストを再現しようとしていますが、常に失敗しています。 サーバーは送信されたデータ(以下の例ではmy_data)をまったく見ていません。cURLでAjaxリクエストを再現

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' \ 
    --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の書式設定に問題があると思います。私は何をしようとしているのかも疑問に思っています(XMLHttpRequestオブジェクトをcURLで適切にフォーマットすることを意味します)

私は、これまでデータパラメータを持つものは見つかりませんでした。

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

は '受信するように設定ルートですあなたのドメインからの「POST」とクロスオリジン? – 1252748

+0

「curl」と入力するとどうなりますか?「http://example.org/ajax_call」-d my_data = data_value'そして 'curl'はサーバでそれを試してみますか?それがうまくいけば、 'curl -v 'http://example.org/ajax_call' -d my_data = data_value'で再度試してから、Content-Type、Accept、その他の関連するヘッダにどのような値が設定されているかを見てください。 – hmedia1

+0

あなたが 'curl'を与えるオプションが少なければ少ないほど、あなたのためにそれを試してみるでしょう。たとえば、 '-d data = value'引数を追加すると' curl'は '-X POST'を指定せずに自動的に' POST'要求を行います。時には、APIがうまくいくかどうか、何が問題なのか、何が問題なのか、どの設定が無視されるのかを確認するのに役立ちます。 – hmedia1

答えて

0

すべてのあなたのcURLの要求が有効であり、処理することができます:あなたの助けを

おかげで

EDIT

ソリューションは、コメント欄での人々のおかげでした。 symfonyのアプリのコントローラでは、RequestオブジェクトのメソッドgetContent()により送信されたJSONオブジェクトにアクセスすることができます。

/** 
* @Route("/ajax_call", name="some_action") 
*/ 
public function someAction(Request $request) 
{ 
    if ('' !== $content = $request->getContent()) { 
     $data = json_decode($content); 
     // some action… 
    } 

    return new Response(null, Response::HTTP_BAD_REQUEST); 
} 

開発者ツールバーでは、このようなあなたの要求を見て:

enter image description here

関連する問題