2012-01-08 13 views
1

私はいくつかのデータを取得してページに出力するPHPスクリプト(fetchData.php)を用意しています。Javascript予期しないトークンILLEGAL

<?php 
require 'config.php'; 
require 'jsonapiSDK.php'; 
$api = new JSONAPI($ip_address, $jsonapi_port, $username, $password, $salt); 
$response = $api->call('BWMFunction'); 
echo(addslashes($response["success"].";")); 
?> 

あなたがここに出力見ることができます:http://justicecraft.net/worldmap/fetchData.php 私はfetchData.php からの応答を取得するためにXMLHttpRquestを使用して別のページを持っているがここではそれのためにJavaScriptをです。応答を取ってeval()を呼び出すと(BWMFunctionという配列を作成する)、配列を別の関数に渡します。不正なトークンエラーは、応答をeval()しようとすると発生します。

function fetchData() { 
    var xmlhttp; 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      res = xmlhttp.responseText; 
      alert(res); 
      eval(res); 
      generate(BWMFunction); 
     } 
    } 
    xmlhttp.open("GET", "fetchData.php", true); 
    xmlhttp.send(); 
} 

これは私の初めてのStackOverflowです。どんな助けにもなります。私はかなり長い間、周りにグーグルで行ってきましたが、答えのどれも私を助けませんでした。

答えて

6

fetchData.phpから返された無効なJavaScriptがあります。そのため、evalメソッドがクラッシュします。出力に\"の代わりに、簡単な"が必要です。私はPHPについて厳密には何も知っていませんが、私は損害を引き起こしているaddslashesの機能の一部を賭ける準備ができています。

echo($response["success"].";"); 
+0

は、私はあなたの右うわー –

+0

ハハは、それほど明白だと思うが、それが働いた:だから多分あなたはの線に沿って何かを試みることができます!それは私が問題を取り除こうとしていたのでaddslashes()を追加したので皮肉ですが、それはまったく別の問題でした!ありがとう! – fruitcup

+0

@DrAgonmoray、もしあなたがこの問題を解決するのに役立つならば、あなたはそれを[回答としてマークする]と考えるべきです(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 )をクリックしてください。 –

関連する問題