PHP Curl和json post错误false
在使用PHP Curl和json post错误false,php,ajax,api,curl,post,Php,Ajax,Api,Curl,Post,在使用PHP curl和ajax方面,我是个新手 我被要求做以下工作(附上一张图片供您考虑)。。这里有一些要求 最初,我尝试使用jquery ajax发送请求,但不起作用。代码如下: function sendAPI(){ $.ajax({ url: "https://someurl.com/api/page/index", headers: { 'x-api-key':"[API KEY GIVEN BY THE COMPANY]", 'C
PHP curl和ajax方面,我是个新手
我被要求做以下工作(附上一张图片供您考虑)。。这里有一些要求
最初,我尝试使用jquery ajax
发送请求,但不起作用。代码如下:
function sendAPI(){
$.ajax({
url: "https://someurl.com/api/page/index",
headers: {
'x-api-key':"[API KEY GIVEN BY THE COMPANY]",
'Content-Type':'application/json'
},
method: 'POST',
dataType: 'jsonp',
data: {
id: "7001345730",
recordNo: "1000000000",
recordDate: "2017-12-12",
phone: "+966555555555",
extension: "1234",
email: "feras@test.com",
managerName: "Amjad",
managerPhone: "+966555555555",
managerMobile: "+966555555555"
},
success: function(data){
console.log('lllk');
console.log('succes: ' + data);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log("textStatus: ", textStatus);
console.log("errorThrown: ", errorThrown);
}
});
}
sendAPI();
我的控制台上显示以下错误消息
请注意:我尝试了json和jsonp数据类型,但结果相同
text状态:错误
错误抛出:错误
后来我尝试了php curl
,但我也发现了错误
以下是php curl代码:
$id ="7001345730";
$recordNo = "1000000000" ;
$recordIssueDate = "2017-12-12" ;
$phone = "+966555555555" ;
$extension = "1234" ;
$email = "feras@test.com" ;
$managerName = "Adeel Essa" ;
$managerPhone = "+966555555555" ;
$managerMobile = "+966555555555";
$data = array(
"id" => $id,
"recordNo" => $recordNo,
"recordIssueDate" => $recordIssueDate,
"phone" => $phone,
"extension" => $extension,
"email" => $email,
"managerName" => $managerName,
"managerPhone" => $managerPhone,
"managerMobile" => $managerMobile,
);
$ch = curl_init('https://someurl.com/api/page/index');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
"x-api-key: 56DAAC8KAD-SFOL9267B-B97E1A9E"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$result = curl_exec($ch); //get return String
echo json_encode($result);
if (curl_error($ch)) {
$error_msg = curl_error($ch);
}
curl_close($ch);
if (isset($error_msg)) {
print_r($error_msg);
}
当我执行上述代码时,我得到以下错误:
false
Failed to connect to wasl.elm.sa port 443: Timed out
最后,我唯一的问题是:
如果我做得对,或者我的代码中缺少一些东西
在JQuery和PHP CURL代码上
李>
如果是,我需要改变什么
上图中也提到了要求
请帮助İ在图像上显示应用程序JSON。但是您使用的是数据类型:“jsonp”,wht说您使用chrome控制台连接到ajax连接?你确定使用JsonP的api响应正确吗?@MikeAron我尝试了json
和JsonP
,但都是一样的result@amjad从你们提供的图片来看,似乎有些URL是一个域,而不是实际的域。它只是一个不存在的虚拟URL,因此您得到的是超时响应。@Prathamespalav我删除了该URL,原因是这不是我发布的URL。它只是一个隐藏机密性的虚拟URL,因为我不想显示该文档中的任何内容。$data
实际上是一个JSON编码的字符串?您是通过json_encode()运行它的吗?您是否验证了json_encode实际返回的是字符串,而不是bool(false)或NULL?(这意味着json_编码由于某种原因失败)