不能读取传递给$的json数据.Ajax到PHP curl


can't read json data passed to $.ajax to php curl

我已经将数据传递给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"])));
}

不能解析返回数据为什么?

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

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

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

  3. 你确定response是一个有效的属性在你的json?

  4. 试着在curl_call.php的顶部添加这个。

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

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

    success: function(response) {console.log(响应);}