2016-12-15 7 views
1

windows.locationを使用せずにファイル名からの相対パスを使用してAJAXリクエストを作成する必要があるとします。ファイル名からのJavaScript相対パス(windows.locationなし)

ので、hypoteticalページ:へ

ので、リクエストポイントをやって
 
$.get("./data/mydata.json", function(data) { 
    .... 
}); 

mywebsite/myfolder/mypagename、私のような何かをする必要がありmywebsite/myfolder/data/mydata.jsonが、私はポイントにそれを必要とする:mywebsite/myfolder/mypagename/data/mydata.json

ですそれを行う方法はありますか?私はまた、"~/data/mydata.json"をしようと試みたが、私は何を求めていることは可能ではないようだとして"./data..."

+0

windows.locationを使用せずに行うことはできません。 – GiuServ

+0

お客様のリクエストによりwindows.locationを使用できません。それにはSASTの結果があり、顧客はそれを使いたくない。 – freecloud

+0

イメージ、CSS、JavaScriptなどのように相対パスを使用してください。 – epascarello

答えて

0

として動作しているようですが、私は、任意のAJAX呼び出しを送信する前に、URLの検証正規表現でwindows.location.pathnameを使用しています:

 
if (! (/([<>]|javascript:)/.test(decodeURIComponent(apiUrl)))) { 

    ... do the call 

} else { 

    window.location.href = '/404'; 

} 

他にも役立つことがあります。

+0

これは元の質問にどのように答えますか? – epascarello

+0

それはありません。それはウォークアラウンドです:私は私の顧客がwindows.locationを使用して受け入れるようにしましたが、私はURLに書かれたjが処理されるのを防ぐためにURLのチェックを行います。 そのようなページを誰かが呼び出すと、/ mypage/ regexpは404にリダイレクトされます。 – freecloud

+0

XSSがあなたにどのように影響するかわかりません。相対パスは使用できません。 – epascarello

関連する問題