如何通过javaScript / jquery从php获取json返回值?

时间:2017-12-26 12:51:45

标签: javascript php jquery json

这是我的javaScript代码:

$(document).ready(function() {
    $('#IMDB').click(function() {  
       var MovieID = $('#MovieID').val();

       $.post('action/action.php', { url: "http://api.themoviedb.org/3/movie/"+MovieID
+"?append_to_response=credits,images&api_key=myapikey" }, function(data) {
           var aliases = data.aliases;  
           document.getElementById('GamesTitle').value = aliases;
       });
    });
});

这是我的PHP代码

header('Content-Type: application/json');
    $url = $_POST['url'];
    $context = stream_context_create(['http' => ['user_agent' => 'API Test UA']]);
    $response = file_get_contents($url, false, $context);
    $json = json_decode($response, true);
    foreach($json as $item){
        if($item['aliases'] !== null && $item['aliases'] !== 'O' && $item['aliases'] !== '1'){
            $aliases .= $item['aliases'];  // its give the result fine in php page
        }   
    }

    echo json_encode(array(
      'aliases' => $aliases
    ));
    return true;

但是当我点击我的按钮获取所有信息时它没有得到任何东西。 我在控制台或任何地方都没有任何错误,所以我找不到我的问题。

当我在php页面中返回值时,它会像这样返回 - >

O null null null null {我的结果} 1

这就是为什么我必须跳过这个O和1

if($item['aliases'] !== null && $item['aliases'] !== 'O' && $item['aliases'] !== '1') {// .... now its ok } 

如果从php中删除它,它将正常工作。像这样

header('Content-Type: application/json');
    $url = $_POST['url'];

    echo json_encode(array(
      'aliases' => 'test' /// now its work fine
    ));
    return true;

1 个答案:

答案 0 :(得分:1)

添加."json" ...赞:

$(document).ready(function() {
$('#IMDB').click(function() {  
   var MovieID = $('#MovieID').val();

   $.post('action/action.php', { url: "http://api.themoviedb.org/3/movie/"+MovieID+"?append_to_response=credits,images&api_key=myapikey" }, function(data) {
       var aliases = data.aliases;  
       document.getElementById('GamesTitle').value = aliases;
   }, "json");
});
});

现在返回data将被解释为JSON。