2016-12-06 14 views
0

d3からjson関数を呼び出すときに問題があります。ルート以外のURLからd3.jsonを呼び出す

私のDjango DBのモデルをレンダリングするページ(このWebサイトはこのurl '/ app/function/pk'から呼び出されます)から、私はJS d3.jsonを呼び出して、 "app/dootherthing/pk "をURLとして使用します。例:d3.json( "/ app/dootherthing/pk")。しかし、開発者モードのコンソールでは、d3.jsonはこのjsonオブジェクトがあるhttp://127.0.0.1:8000/app/dootherthing/pkの代わりにhttp://127.0.0.1:8000/app/function/pk/app/dootherthing/pkからjsonオブジェクトを取得しようとするため、エラーが表示されます。

d3.jsonをルートURL「127.0.0.1:8000/」にリダイレクトして、現在のURLをルートとして使用しないようにするにはどうすればよいですか?

私は自分自身を説明されているかどうかはわかりませんが、私はそれが何かばかげて簡単にあなたの答えに感謝しなければならないと思います!

ベスト。

+0

関連するJSコードを表示できますか? –

+0

d3.json( "APP/dootherthing /" + PK、関数(誤差、グラフ){ 力(グラフ); 場合(エラー)スローエラー; })。 – ddomingo

+0

これは、私がhttp://127.0.0.1:8000/から呼び出すと機能しますが、d3.jsonが試行するので、私がURL "http://127.0.0.1:8000/app/function/pk"このURL "app/function/pk/app/dootherthing/pk" – ddomingo

答えて

0

あなたがしようと、絶対パスに変更する

"/app/dootherthing/" 

または代わり

"../../app/dootherthing/" 

あなたは常にwindow.location.hrefで現在のURL /パスを確認することができ、例えばする相対的パスを供給しています

var app_url = "app/dootherthing"; 
if (window.location.href.indexOf('/app/') !== -1) { 
    url = window.location.href.slice(0, window.location.href.indexOf('/app/')) + '/' + app_url; 
} else { 
    url = app_url; 
} 
+0

答えをありがとう。問題は、同様のアプローチで同じhtmlとjavascriptを使用しているので、ここでもhtml/jsの両方を使いたいと思います。このアプローチでは、ルートURLから呼び出されるため動作します。私は条件付きを作成するのが理にかなっているのだろうか、それがうまくいくと思う相対的な経路をどこに呼ぶのかによって決まるのだろうか。 – ddomingo

+0

ところで、それは動作します – ddomingo

+0

更新された回答を見てください:) –

関連する問題