2017-07-21 8 views
3

私はこのコード(InDesign CS6)を持っており、期待どおりに動作していません。私はMac OSを使用しており、コードをWindowsおよびMacと互換性を持たせる必要があります。私はlocalhostを超えるテキスト/ JSONを取得しようとすると、ソケットが空の文字列を返すInDesign CS6ソケット返却空

: -

function getData(host, path) { 
    var reply = ''; 
    var conn = new Socket; 
    var request = "GET " + path + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "\n"; 

    if (conn.open (host)) { 
     conn.write (request); 
     reply = conn.read(999999); 
     var close = conn.close(); 
    } 
    return reply; 
} 

var host = 'localhost:80'; 
var path = '/test/test/json.php'; 
var test = getData(host, path); 
alert(typeof(test) + ' Length:' + test.length); 

編集:最後に、私は、問題の原因かを見つけるために管理します。私はVMwareを作成し、スクリプトを実行しようとすると、それは動作しています。なぜ私のマシンで動作しないのか分かりません。 Wiresharkをダウンロードし、InDesignが要求を送信するのを見たが、何かがサーバーへのアクセス要求をブロックする。私はブロックを引き起こすものを検出できるかどうかを更新します。

+0

ソケットサーバーを起動しましたか?あなたのサーバー構成を投稿できますか? –

+0

こんにちはAlexander、ソケットは、Adobe InDesign Script(http://jongware.mit.edu/idcs6js/pc_Socket.html)によって提供される関数です。私はソケットを実行するためにどんなサーバーも使用していません。 – Arepie

+0

これを参照してください:https://gist.github.com/NicolasZanotti/5541764 –

答えて

0

サーバーからJSONを取得するためにソケットを使用する必要はありません。

代わりにXMLHttpRequestのドキュメントまたはjQueryのようなライブラリを参照すると、AjaxJSONを呼び出すことが大幅に簡素化されます。

+0

アレクサンダー、jQueryや通常のjavascriptを使用することができます。これは、限られた機能が利用できるInDesign Scriptingに関連しています。とにかく、フィードバックのおかげで。 – Arepie