Php 通过jquery访问api

Php 通过jquery访问api,php,jquery,ajax,api,Php,Jquery,Ajax,Api,我有一个php示例,如何访问api,如何使用jquery实现?我不知道PHP,我必须从api获取数据 PHP示例: $address = 'https://mywebsite.com/api/?gate=clients/getNewsletter/0/json'; $request = array(); $request['authenticate'] = array(); $request['authenticate']['system_key'] = sha1(date('Ymd').'m

我有一个php示例,如何访问api,如何使用jquery实现?我不知道PHP,我必须从api获取数据

PHP示例:

$address = 'https://mywebsite.com/api/?gate=clients/getNewsletter/0/json';

$request = array();
$request['authenticate'] = array();
$request['authenticate']['system_key'] = sha1(date('Ymd').'mypass');
$request['authenticate']['system_login'] = "mylogin";
$request['params'] = array();
$request['params']['shops'] = array();
$request['params']['shops'][0] = array();
$request['params']['shops'][0]['shop_id'] = 0;
$request['params']['shops'][0]['approval'] = 'y';
$request['params']['date'] = array();
$request['params']['date']['from'] = '2018-08-10';
$request['params']['date']['to'] =  '2018-08-13';
$request['params']['return_elements'] = array();
$request['params']['return_elements'][0] = "1";
$request['params']['results_page'] = 0;
$request['params']['results_limit'] = 100;

$request_json = json_encode($request);
$headers = array(
    'Accept: application/json',
    'Content-Type: application/json;charset=UTF-8'
);

$curl = curl_init($address);
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, 1);
curl_setopt($curl, CURLINFO_HEADER_OUT, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request_json);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($curl);
$status = curl_getinfo($curl);
curl_close($curl);

这可以在jquery上完成吗?

您可以使用jquery ajax函数:

var d=新日期();
var username=d.getFullYear()+d.getMonth()+d.getDate()+'mypass';
变量参数={
“验证”:{
“系统密钥”:加密。微妙。摘要('SHA-1',新文本编码器(“utf-8”)。编码(用户名)),
“系统登录”:“mylogin”
},
“params”:{
'shops':[{'shop_id':0,'approval':'y}],
“日期”:[]
}
};
$.ajax({
网址:'https://mywebsite.com/api/?gate=clients/getNewsletter/0/json',
键入:“post”,
数据类型:“json”,
contentType:'应用程序/json',
数据:JSON.stringify(参数),
成功:功能(数据){
//过程数据
控制台日志(数据);
},
错误:函数(a、b、c){
//错误处理
控制台日志(a、b、c);
}
});

不幸的是,它不起作用
代码验证{…}system\u key null system\u login null
感谢您的反馈,我已经更新了代码片段以使用您提供的php示例。它仍然无法通过授权,system\u key和system\u login都是带有显式json内容编码的改进代码,让我知道这是否如预期的那样有效