我已经将数据传递给ajax curl,但无法解析json数据,我在ajax调用我的ajax代码。
$.ajax({
url: 'http://localhost/curl_call.php',
type:"POST",
data:
{
url_path:"http://localhost/login/",
data:"name=bddd&password=abc",
},
crossDomain: true,
processData: true,
success:function(response)
{
res_par=JSON.parse(response);
alert(res_par["success"]);
}
)};
curl_call.php:
function curl_load($url,$post_data){
curl_setopt($ch=curl_init(), CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
if((isset($_POST["url_path"]))&&($_POST["url_path"]=="http://localhost/api/login/"))
{
echo json_encode(json_decode(curl_load($_POST["url_path"],$_POST["data"])));
}
不能解析返回数据为什么?
似乎您需要在脚本中进行一些调试。依次尝试以下操作:
-
首先,为什么
json_decode
和json_encode
是同一个字符串? -
然后,检查您的响应是否为有效的
JSON
字符串。你可以在这里试试:http://json.parser.online.fr/ -
你确定
response
是一个有效的属性在你的json? -
试着在
curl_call.php
的顶部添加这个。头("application/json内容类型:;charset = utf - 8 ');
-
并将JS的
success
函数替换为以下内容,然后检查浏览器的控制台:success: function(response) {console.log(响应);}