2016-05-28 29 views
1

ハイチャートでPhantomJSを使用してレポートを生成したいと思います。しかし私のグラフでは、私のデータはSQLデータベースにあります。通常、私のチャートを生成するために、私はファイルquery.cfc(coldfusion)でajaxリクエストを使用し、私のチャートは動作します。しかし、PhantomJSでは、私のajaxリクエストで関数を追加すると、コールバックエラー404が発生しますが、私は理由はありません。私の単純なグラフに使用しているのと同じ機能です。PhantomJSを使用したAjaxリクエストをローカルのColdFusionサーバーに送信

私はPhantomJSを起動します。phantomjs --web-security=no test.js

var system = require('system'); 
var page = require('webpage').create(); 
var fs = require('fs'); 

// load JS libraries 
page.injectJs("jquery-2.1.1.js"); 
page.injectJs("highcharts.js"); 
page.injectJs("exporting.js"); 

// chart demo 
var args = { 
    width: 600, 
    height: 500 
}; 
page.onConsoleMessage = function(msg) { 
    console.log(msg); 
}; 
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { 
    var svg = page.evaluate(function(opt) { 
     $('body').prepend('<div id="container"></div>'); 

     function test() { 
      $.ajax({ 
       type: "POST", 
       async: false, 
       url: "query3.cfc?method=test", 
       data: { 
        'arg1': 'aee', 
        'arg2': 'ss' 
       }, 
       success: function(year) { 
        var lim_annee = jQuery.parseJSON(year); 
        console.log('success'); 
       }, 
       error: function(jqXHR, exception) { 
        console.log('erreur ' + jqXHR.status); 
        console.log('erreur2 ' + exception); 
       } 
      }); 
     }; 
     //chart Code 
     return chart.getSVG(); 
    }, args); 

    page.render('img.jpeg', { 
     format: 'jpeg', 
     quality: '100' 
    }); 
    phantom.exit() 
}); 
+0

'404'は、ajaxのURLが正しくないことを意味します。 – RRK

+0

はいわかりましたが、私のURLは良いです。私はすべての道で試してみたが、それは同じだ。私のファイル.jsと.cfcは同じフォルダにあります –

+0

ColdFusion関数 'test'が' access = "remote" 'であることを確認してください。 – RRK

答えて

2

あなたはPhantomJSでページを開かない場合は、それは「について:空白」に滞在し、「について:?空白/ query3.cfc方法=テスト"正しいURLのようには見えません。 ColdFusionサーバーへの正しいURLを使用するか:

url: "http://localhost:port/query3.cfc?method=test", 

またはは何かを行う前にPhantomJSで基本ドメインを初期化する:あなたは、単純なローカルのHTMLファイルを開くとしたら

page.setContent("", "http://localhost:port/"); 

は、ということを忘れないでください"file://"プロトコルを使用してクエリ文字列を削除する必要があります。

また、複数のjQueryバージョンをロードすると、スクリプトが壊れる可能性があります。

+0

です。私は試しました page.setContent( ""、 "http:// websiteURL /");それは同じです。 404エラーとURL urlのすべてのパスを試してみると: "http://websiteURL/query3.cfc?method = test"、私は同じエラーがあります。私はなぜ、私のファイルが本当に私のフォルダに存在するのか分からない。 複数のJqueryでOKです。私は1行を削除しました。 –

+0

はい私はhttp:// を含んでいます。これはローカルWebサイトなので、http:// mywebsiteになりました –

+0

ブラウザで開くとリソースが表示されますか? ColdFusionサーバーが実行されていますか? –

関連する問題