0

我已将数据传递给 ajax 以 curl 但无法解析我在 ajax 中获取的 json 数据调用我的 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"])));
}

为什么无法解析返回数据?

4

1 回答 1

0

似乎您需要在脚本中进行一些调试。按顺序尝试以下操作:

  1. 首先,为什么你json_decodejson_encode同一个字符串?

  2. 然后,检查您的响应是否为有效JSON字符串。你可以在这里试试:http: //json.parser.online.fr/

  3. 您确定这response是您的 json 上的有效属性吗?

  4. 尝试在curl_call.php.

    header('内容类型: application/json; charset=utf-8');

  5. 并将您的JS的功能替换success为以下内容,然后检查浏览器的控制台:

    成功:函数(响应){ console.log(响应);}

于 2013-06-08T13:30:22.387 回答