无法读取传递给$ .ajax的json数据到php curl

时间:2013-06-08 12:57:59

标签: php ajax jquery curl

我已经将数据传递给ajax进行curl但是无法解析我在ajax中调用我的ajax代码的json数据。

$.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"])));
}

无法解析返回数据的原因?

1 个答案:

答案 0 :(得分:0)

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

  1. 首先,为什么json_decodejson_encode字符串相同?

  2. 然后,检查您的回复是否为有效的JSON字符串。您可以在此处尝试:http://json.parser.online.fr/

  3. 您确定{j}上的response是有效的属性吗?

  4. 尝试在curl_call.php的顶部添加此内容。

    header('Content-type:application / json; charset = utf-8');

  5. 并替换以下JS的success函数,然后检查浏览器的控制台:

    成功:功能(响应){     的console.log(响应); }