2016-04-02 12 views
1

内の関数を呼び出すようにしようとしたとき、「例外TypeError c.sliceは関数ではありません」なぜこのようなことが起こるのか分かりません。私はあなたの助けに感謝します!前もって感謝します!ここで:「:c.slice関数ではありませんTypeError例外は、」私はjQueryののAJAX呼び出し内の関数を呼び出すようにしようとしたが、それは私を示し続けているjQueryの

は私のAJAX呼び出しです:

$.ajax({ 
    url: "my.php", 
     method: "get", 
     dataType: "json", 
     data: requestJSON, 
     success: function(jsondata){ 
     $.getJSON('my.php?callback=?', function (data) { 

       // Create the chart 
       $('#historicalcharts').highcharts('StockChart', { 


        rangeSelector : { 
         selected : 1 
        }, 

        title : { 
         text : 'AAPL Stock Price' 
        }, 

        series : [{ 
         name : 'AAPL Stock Price', 
         data : data, 
         type : 'area', 
         threshold : null, 
         tooltip : { 
          valueDecimals : 2 
         }, 
         fillColor : { 
          linearGradient : { 
           x1: 0, 
           y1: 0, 
           x2: 0, 
           y2: 1 
          }, 
          stops : [ 
           [0, Highcharts.getOptions().colors[0]], 
           [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')] 
          ] 
         } 
        }] 
       }); 
      }); 
}); 

}

私は、このリンクで機能を模倣しようとすると、唯一の違いは、それが呼び出しごとにJSONデータを取得するということですが、私は使用します私のPHPスクリプトから取得するJSONデータ。ここで http://www.highcharts.com/stock/demo/area

HighChartsから私のPHPコード

<?php 

if (isset($_GET['request'])) { 
    header("content-type: application/json"); 
    $retrievechartJSON = 'http://dev.markitondemand.com/MODApis/Api/v2/InteractiveChart/json?parameters=' . $_GET['request']; 
    $json = file_get_contents($retrievechartJSON); 
    echo $_GET['callback']. '('. $json . ')'; 

?> 
+0

phpスクリプトは表示できますか?独自のドメイン以外のJSONファイルでは、jQuery .getJSON()関数を使用することはできません。ただし、JSONPを使用することは可能です。 – JordanHendrix

+0

私はパースされたJSONとサードパーティのコードに渡している何かを確認して、サードパーティのコードが期待している構造であることを確認します。私の最初の推測では、配列や文字列(スライス()メソッドを持つ人)が何かを期待していますが、「何か」はそれらのどちらでもありません。または、デバッガのハイチャートコード(Chrome/IE/FFのF12)を実行してみてください。 c.slice呼び出しが表示されるまで、各関数を実行してください。または、ハイチャートのコードを "c.slice"にgrepします。 –

+0

ここにJSスタックトレースがあります:http://stackoverflow.com/a/635852/424129 –

答えて

4

である:あなた自身のドメイン外JSONファイルにjQueryの.getJSON()関数を使用することはできません

。ただし、JSONPを使用することは可能です。

あなたはJSONをラップし、あなたのPHPにコールバックを追加する必要があり、その後、あなたはそのJSONオブジェクトを返す:

あなたはjQueryの使用を使用することができ、これらの変更により
<?php 
header("content-type: application/json"); 

$array = array(7,4,2,8,4,1,9,3,2,16,7,12); 

echo $_GET['callback']. '('. json_encode($array) . ')';  

?> 

を$ .getJSON()のように:

var url = "http://url-to-your-remote-server/jsonp.php?callback=?"; 

$.getJSON(url, function(data) { 
    var yourJSONP = data; 
    // render you chart here 
}); 

以下は、クロスドメインデータの関連ドキュメントです:

http://www.highcharts.com/docs/working-with-data/getting-data-across-domains-jsonp

関連する問題