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的在我的情況)抓獲。我想有一個XMLHttpRequest格式在cURL中的問題,我想知道我試圖做什麼甚至可能(這意味着通過cURL XMLHttpRequest對象的正確格式)
我爬網幾個小時,到目前爲止,沒有發現任何有數據參數
感謝您的幫助
編輯
發現的解決方案由於人們註釋部分是:
curl -v \
--header 'X-Requested-With: XMLHttpRequest' \
'http://example.org/ajax_call' \
-d my_data=data_value
IS路由設置爲接收' POST'和跨域來自你的域名? – 1252748
如果你只是輸入'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
你給'curl'的選項越少,它會嘗試爲你工作的越多。例如,如果添加'-d data = value'參數,'curl'會自動使其成爲'POST'請求,而不指定'-X POST'。有時它可以幫助API瞭解什麼可行,什麼不可行,什麼設置很重要,什麼設置被忽略。等等。 – hmedia1