2016-09-03 3 views
0

私はJS内にnew URLを作成しようとしているので、非同期要求に対して操作できるようにしています。クロス・オリジンは何もないので(これがその用語の正しい使い方だと思います)、非同期リクエスト用に送信するURLは/MyLoginUrlまたは/ MyUpdateDataUrlなどのようになります(つまり、パス名のみを送信しています)。パス名を送信するときのJS - baseURLString

// Actually I set the url as an arguement in a function, 
// but for demonstration it will be a variable 
var url = '/myPathname'; 

// Much later... 
url = new URL (url); 

しかし、これは構文エラーを返していました。既存のURLからnew URLを作成するための

私の試みは、このように基本的に見えました。一度私がdocsを見たら、私はその理由を知りました。ドキュメント毎の

は、new URLの構文は次のようになります。

url = new URL(urlString, [baseURLstring])

url = new URL(urlString, baseURLobject)

もドキュメントは言う:

baseURLstringを:ありますbaを表すDOMString se urlStringが相対URLである場合に使用するURL。指定されていない場合、パラメータにbaseURLオブジェクトが渡されない場合、デフォルトでは「about:空白」に設定されます。私が把握しようとしています、したがって

var a = new URL("/", "https://developer.mozilla.org"); // Creates a URL pointing to 'https://developer.mozilla.org/' 
var b = new URL("https://developer.mozilla.org");  // Creates a URL pointing to 'https://developer.mozilla.org/' 
var c = new URL('en-US/docs', b);      // Creates a URL pointing to 'https://developer.mozilla.org/en-US/docs' 

:それは無効な絶対URLの場合は、コンストラクタはbaseURLstringのためのドキュメントの例のカップルがある

型SYNTAX_ERRORのDOMExceptionが上がりますどのようにbaseURLstringをエミュレートするかについては、現在、localhostであり、最終的には私のネットワークに使用するメインサーバであるbaseURLstringがホストされます。私は

答えて

1

あなたはこの

var base_url = location.protocol + '//' + location.host + '/'; 
+0

あなたのコードが何をしているのか、それがどのように問題を解決しているのかについて、少しの解説を加えると役に立ちます。たぶん1ライナーのテキストで十分でしょう。 – lmo

0

baseURLstringをテストすることができます...それは私がネットワーク上のサーバの/、またはそうでないかもしれない持っているコンピュータのIPアドレスを取得するいくつかの方法で伴うだろう推測しています googleのベースURLはhttps://www.google.comで、同様にあなたのbaseurlstringはhttps://www.yourwebsiteaddress.comのようなものになり、最初のパラメータurl = new URL(urlString, [baseURLstring])はサーバー上に置かれたファイルのパスです(ルートフォルダ、あなたのデフォルトインデックスファイルが置かれる場所)

+0

tku、わかりました。私は 'localhost'の' baseURLstring'を取得しようとしています、あるいは 'on-a-network 'baseURLが使われているもの – 4lackof

関連する問題