[英]Sending form-data post request with guzzle
我正在使用guzzle http client ,並希望在使用js完成后實現如下所示的發布請求:
var formData = JSON.stringify( { id: formID, fields: fields, settings: settings, extra: extra } );
var data = {
'action': 'nf_ajax_submit',
'security': nfFrontEnd.ajaxNonce,
'formData': formData
}
var that = this;
jQuery.ajax({
url: nfFrontEnd.adminAjax,
type: 'POST',
data: data,
cache: false,
success: function( data, textStatus, jqXHR ) {
try {
var response = jQuery.parseJSON( data );
nfRadio.channel( 'forms' ).trigger( 'submit:response', response, textStatus, jqXHR, formModel.get( 'id' ) );
nfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:response', response, textStatus, jqXHR );
jQuery( document ).trigger( 'nfFormSubmitResponse', { response: response, id: formModel.get( 'id' ) } );
} catch( e ) {
console.log( e );
console.log( 'Parse Error' );
console.log( e );
}
},
我該如何用狂吃來制作后期請求的form-data
,我已經嘗試過做類似的事情:
$url = 'http://ytf.app/wp-admin/admin-ajax.php';
$data = [];
$data['security'] = $this->getNonce();
$data['action'] = 'nf_ajax_submit';
$data['formData'] = $request->all();
$formData = json_encode($data);
$client = new Client();
$response = $client->request('POST', $url, [
'body' => $formData,
]);
$body = json_decode($response->getBody(), true);
if ($body['success'] === true && $body['data'] !== false) {
return $body['data'];
}
但是,那行不通,我應該怎么做?
$http = new GuzzleHttp\Client;
$response = $http->post('https://your-endpoint.com', [
'form_params' => [
'security' => $data['security'],
'action' => $data['action']
],
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.