' Fires when the application is started The ajax() method is used to perform an AJAX (asynchronous HTTP) request. googletag.defineSlot('/21812778492/blog_728x90_common_overlay_adsence', [728, 90], 'div-gpt-ad-1583302554779-0').addService(googletag.pubads()); Private Shared Sub RegisterRoutes(routes As RouteCollection), routes.MapPageRoute("Dashboard", "Dashboard", "~/Module/Dashboard/Dashboard.aspx") I have a desktop app and I use $.getJSON to get data from my wordpress site using the plugin the WP REST API. We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products. var googletag = googletag || {}; Clone with Git or checkout with SVN using the repository’s web address. Learn more, We use analytics cookies to understand how you use our websites so we can make them better, e.g. wp_localize_script ('example-ajax-script', 'example_ajax_obj', googletag.pubads().collapseEmptyDivs(); URL to set to be the Ajax data source for the table. googletag.defineSlot('/21812778492/blog_468x60_common_eyecatch02_adsence', [728, 90], 'div-gpt-ad-1567575393317-0').addService(googletag.pubads()); Use table() if you require to select a specific table from a set. }); WebサイトのURLはJavaScriptから取得して、プログラムで制御することが可能です。, また、URLにはパラメータが付与されていることもあり、これらのデータを活用することでサイトのコンテンツを意図的に変えるような制御もできます。, しかし、これらのプログラミング手法について一体どのように学習を進めていけば良いのか悩む人も少なくないでしょう。, この記事では、初心者でも今日からlocationオブジェクトを活用してURLを取得できるようになる手法について分かりやすく解説していきますので、ぜひ最後まで読んで理解を深めて頂ければ幸いです。, locationとは、現在表示されているウェブページのURLを抽出したり、別のページへ遷移する場合などに便利なオブジェクトです。, 基本的な機能としてはURLや、ホスト名・パス・プロトコルなどの情報を得ることが出来ます。また、locationにはさまざまなプロパティが提供されています。, 試しに、任意のwebページを開いてブラウザのデベロッパーツールを起動し、コンソールへlocationと入力して実行させてみましょう。, locationに提供されているプロパティがずらっと並びますね。これらのプロパティが示しているURL情報は、現在開いているWebページに基づいたものになっています。, このプロパティをlocationの記述の後ろにつけることで、ピンポイントで欲しい値をゲットできるのです。, locationは基本的に、下記のように後ろにプロパティを組み合わせて使用します。, この例の場合は、現在開いているページのURLを取得するという記述になります。これを変数に入れたりして操作を行なっていきます。, 一覧を見ていると、hostとhostnameという似ているプロパティがあることにお気づきでしょうか?, hostとhostnameは、現在開いているWebページのホスト名を取得することができるプロパティです。ホスト名とは、例えばhttps://www.sejuku.net/blogのようなURLがあったとするとwww.sejuku.netの部分のことです。, 大抵の場合は、プロトコル情報を排除したトップページのURLが該当します。では、この2つの違いは何なのか、サンプルコードを見ながら確認してみましょう。, locationに対してhostとhostnameを記述すると、ホスト名を取得できましたね。どちらも同じ動作をしていますが、決定的に違うのはポート番号を取得するかどうかという点です。, 実は、WebページにアクセスするにはURL以外にポート番号というものも必要になります。http:で始まるWebページはポート番号が80で、https:の場合はポート番号が443のように決まっています。(【例】https://www.sejuku.net:443/blog), hostの場合はポート番号を含んだホスト名、hostnameの場合はポート番号を含まないホスト名を取得すると覚えておきましょう。, locationの基本的な仕組みを確認できたところで、もっと具体的な活用方法について確認していきましょう!主に、URL・パス・プロトコル・ポート番号の取得方法について学んでいきます。, まずはもっとも基本となるlocation.hrefを使ってURLを取得・表示してみます。, この例では当ブログのトップページを表示しているので、実行結果にブログURLが表示されています。単純にlocation.hrefを記述するだけでURLを取得できるので便利ですね。, pathnameはURLのパス部分を取得することができる機能を持っており、別のパスに差し替えることも可能です。, 例えばhttps://www.sejuku.net/blog/35791のようなURLがあったとします。このURLのパスは/blog/35791の部分となります。, ①のようにlocationに対してpathnameを記述するだけで取得することが可能です。また②のように、別のパスを代入することで画面遷移させることもできます。, 一般的なWebサイトであれば、同一のホスト名で遷移することが多いはずなので、そのようなケースではpathnameを使うと良いでしょう。, protocolは、現在開いているWebページのプロトコル情報を取得することができます。つまり、URLの最初の部分である「http:」や「https:」を取得できるということです。, この例のように、locationに対してprotocolを記述するだけで取得することができます。, 最近ではセキュリティの高いSSL対応の「https:」が使われるようになってきました。しかし、まだまだ「http:」から始まる以前のプロトコルが使われているサイトは多いので、条件分岐する際などに使うことができそうですね。, また、特徴的なのは②のように、別のポート番号を新しく設定することができるところです。もちろんサーバーが対応している必要がありますが、途中で動的にポート番号を変更する際にはportプロパティを使いましょう。, この章では、もっともよく使うlocation.hrefの応用的な使い方について見ていきましょう!主に、任意のURLを設定することで画面遷移を行う方法について学んでいきます。, この例では、当ブログのURLをhrefへ代入していますね。これによりlocation.hrefの値が代入した値に置き換えられるので、画面の遷移が行なわれます。, これはURLが代入された時点ですぐに遷移処理が実行されるので注意しておきましょう。, HTMLのaタグなどでよく使われる属性としてtargetがあります。これは画面遷移する時に、ブラウザの別タブを起動して表示するようなケースでよく使われる属性です。, 結論から言ってしまうと、hrefにtarget属性は用意されていないので実現できません。ただし、同じ動作を実現するための手法としてwindow.openを利用する方法があります。, ①の方法は、window.openの引数に遷移させたいURLとtarget属性を記述する方法です。JavaScriptから動的に画面遷移させるには、これが最も一般的な方法と言えるでしょう。, また、②の方法を使えば少し強引ですがhrefプロパティを活用して別タブで遷移させることが可能です。, どちらも同じような動作はしますが、よほどの理由がない限りは本来の用途で扱える①の方法がベストでしょう。, 次に、locationオブジェクトが持つメソッドの活用方法を確認していきましょう!こちらもプロパティと同じく、簡単にURLを取得・操作することが可能です。, replaceメソッドを使うことで、自分の好きなWebページへ動的に画面遷移を行なうことが可能です。下記のように、replaceメソッドの引数に遷移させたいURLを指定するだけです。, この例では、ボタン要素を配置してJavaScriptからクリックイベントを取得できるようにしていますね。そして、ボタンをクリックするとreplaceメソッドが実行されて、引数に指定したURLへ遷移するというわけです。, さて、ここまでの解説でreplaceとhrefが同じような用途で使えると思った方もいると思います。, 最も大きな相違点は、URL情報がブラウザの履歴に残るかどうかという点です。ここで、もう一度replacehrefの記述を見てみましょう。, しかし、①のreplaceメソッドを使った場合にはブラウザ履歴に残らないため、前のWebページに「戻る」ことができません。反対に②のhrefメソッドを使った場合はブラウザ履歴が残るので、前のページに戻ることができます。, この違いはJavaScriptでWebアプリなどを開発する際に重要になってくるので、よく覚えておきましょう!, reloadメソッドは、現在表示されているWebページを更新(再読み込み)することができます。, reloadメソッドは、デフォルト設定で引数は必要ありません。引数を設定しない場合、ブラウザのキャッシュからページの再読み込みが行なわれます。直接サーバーから読み込みたい場合は、reloadメソッドの引数としてtrueと設定する必要があります。, 上記の例は、コードを実行させた時の時刻の秒数部分のみを表示させ、ボタンをクリックするとブラウザが更新するという仕組みになっています。それでは以下の画像をご覧ください。, 14秒経過後にreloadボタンを押すと、画面が更新されて表示が25秒になっているのが分かります。, つまり、正常に画面が更新されてJavaScriptがもう一度読み込まれて実行されたわけです。このように、reloadメソッドを使うことでブラウザが更新されるのです。, URLの「#」から始まる部分は「ハッシュ(フラグメント識別子)」と呼ばれています。hashプロパティを設定することによって、例えばページ内の任意の位置への移動を行なうことなどが出来ます。, また、URLの「?」から始まる部分が一般的に「パラメータ(クエリ)」と呼ばれているものです。クエリの基本的な構造としては「変数名=変数値」という形になります。, 例えばデータベース内からあるユーザを抽出したい場合、ユーザ名=nameというクエリを作成したりするわけです。, URLのハッシュ情報を取得するには「hashプロパティ」を使用します。基本的にはlocationオブジェクトにhashを実行するだけで利用できます。, 上記の例だと、現在表示されているwebページのURLにあるハッシュ部分をコンソールログに表示させる事が出来ます。以下の画像のような結果が得られます。, 上記の例は、「http://www.sejuku.net/corp/?cid=blog#section4」というURLで実行してみたので、ハッシュ部分は「#section4」と表示されました。, URLのパラメータ情報を取得するには「searchプロパティ」を使用します。こちらもlocationオブジェクトに対してsearchを実行することで利用できます。, こうして、現在表示されているwebページのURLのパラメータ情報をコンソールログに表示させる事が出来ます。, 今回は、「http://www.sejuku.net/blog/?s=JavaScript」というURLで実行してみたので、パラメータ情報は「?s=JavaScript」と表示されました。, この章では、JavaScriptでURLを操作するための応用技について見ていきましょう!, 主に、正規表現を使ったURL取得とディレクトリ階層を取得する方法について学んでいきます。, これまでURLの取得にはlocationオブジェクトのプロパティを使ってきました。, しかし、場合によってはテキストファイルなど外部からURLを取得することもあるでしょう。このようなケースでは、locationオブジェクトではなく正規表現でURL部分だけを取得する方法が使われます。, このような一般的なURLを抽出するための正規表現をそのまま書くと次のようになります。, 例えば、ハッシュやクエリなどが付与されていたり、「.com」や「.co.jp」などの表記になれば対応できなくなります。そこで、考え方としては「https://」以降に続く英数字の文字列でURLに使われるキャラクタを正規表現で全部指定するわけです。, これで、「http / https://」に続くURLがどのような表記になっても、一般的なWebサイトであれば対応できるわけです。, ちなみに、正規表現についてまだ不安な方は以下の記事で基本から応用までをまとめているのでぜひ参考にしてみてください!, この場合「index.html」のファイルが配置されているディレクトリは「three」になりますよね。, 例えば、このディレクトリの階層を取得したい場合はどうすれば良いでしょうか?実は、これまで利用してきた「location.href」を使って取得することができます。次のサンプル例を見てください!, この例では、「location.href」に続けて「split()」を使うことで「/」を区切り文字にしてすべてのディレクトリ階層を配列に格納しているわけです。このようにすることで、JavaScriptから階層を操作しやすくなりますね。, そこで、index.htmlが配置されているディレクトリを取得するには次のように記述します。, 配列に格納されたディレクトリ階層のうち、配列要素の後ろから2番目にあるのがindex.htmlが配置されたディレクトリです。そのため、「result[result.length – 2]」と記述することで見事に「three」というディレクトリを取得できているのが分かりますね。, 今回は、locationオブジェクトを活用したURLの取得方法について学習しました!, 様々なプロパティやメソッドを含むlocationオブジェクトの使い方をマスターすることによって、ウェブページの色々な情報を取得する事が出来ます。, 別ページへの移動やクエリの設定など、ワンランク上のJavaScriptプログラムを書くのに役立つテクニックなので、覚えておいて損はないですね。ぜひ、locationオブジェクトをマスターして使いこなしてください!, 当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。 routes.MapPageRoute("ClaimItem", "ClaimItem", "~/Item/ClaimItem.aspx") googletag.defineSlot('/21812778492/blog_300x250_common_fixed01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565194485392-0').addService(googletag.pubads()); pbjs.setConfig({bidderTimeout:2000}); All jQuery AJAX methods use the ajax() method. pbjs.que=pbjs.que||[]; googletag.defineSlot('/21812778492/blog_300x250_common_ctc01_adsence', [300, 250], 'div-gpt-ad-1566564396953-0').addService(googletag.pubads()); Note that when setting a URL you will normally want to chain the ajax.url().load() method to immediately load the newly set data source URL - using ajax.url() method alone does not trigger an Ajax request, it merely sets the Ajax data source URL. CORRECT CODE: Learn more. googletag.pubads().setTargeting('blog_type', 'Tech');
  • Bonus
  • var url = '../sample.html'; // urlへ非同期でリクエストを送る。 urlは絶対パスでも相対パスでもOK h5.ajax(url); // 設定オブジェクトを第2引数に指定 var settings = {/* 後ほど説明します */}; h5.ajax(url, settings); // 設定オブジェクトにurlを持たせて第1引数に渡す settings.url = url; h5.ajax(settings); googletag.pubads().collapseEmptyDivs(); All I want is not to pass the complete URL as this may change in future, Especially the port number. // fixed01のWORKSが不定期なため共通処理とする Double check the URL path. Definition and Usage. googletag.defineSlot('/21812778492/blog_728x90_common_eyecatch01_adsence', [728, 90], 'div-gpt-ad-1566564252373-0').addService(googletag.pubads()); Learn more. googletag.enableServices(); You signed in with another tab or window. googletag.defineSlot('/21812778492/blog_300x250_common_sidemiddle01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565198726712-0').addService(googletag.pubads()); // fixed01のWORKSが不定期なため共通処理とする url: "ClaimItemService.asmx/AddClaimItemData", /Module/ClaimItem/ClaimItemService.asmx/AddClaimItemData, i not sure what going on with the path link, May 01, 2016 04:16 PM|Nataraj Gandhi Arunachalam|LINK, http://stackoverflow.com/questions/1305996/asp-net-mvc-wrong-url-in-ajax-calls, http://stackoverflow.com/questions/9988634/ajax-call-into-mvc-controller-url-issue, http://stackoverflow.com/questions/10319603/how-to-use-relative-url-in-ajax-post-in-mvc3, May 02, 2016 11:18 AM|DholakiyaAnkit|LINK, May 03, 2016 07:22 PM|sky_091006@hotmail.com|LINK, I might know where it keep give the wrong url path maybe is because i using map page route for my asp page. その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。 Set the Ajax URL and load the data from the new source immediately: The following options are directly related and may also be useful in your application development. Ajax wrong Url path. The scenario is that when the service will be deployed on server, it will have a different URL. Last post May 04, 2016 10:41 AM by ShivaKarthik, Apr 30, 2016 03:06 PM|sky_091006@hotmail.com|LINK, I have problem with the ajax post url it keep go to difference url path i have a few web service but all in the folder but somehow it keep go to the wrong folder i even try difference folder or just put at the default without any folder it still the same. googletag.cmd = googletag.cmd || []; googletag.defineSlot('/21812778492/blog_300x250_common_fixed02_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565198391774-0').addService(googletag.pubads()); googletag.defineSlot('/21812778492/blog_300x250_common_sidemiddle02_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565198822157-0').addService(googletag.pubads()); googletag.defineSlot('/21812778492/blog_728x90_common_eyecatch01_adsence', [728, 90], 'div-gpt-ad-1566564252373-0').addService(googletag.pubads()); googletag.cmd.push(function() { when i delete the map page route all work correctly without any problem. googletag.defineSlot('/21812778492/blog_300x250_common_sidemiddle01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565198726712-0').addService(googletag.pubads()); var pbjs=pbjs||{}; // We'll pass this variable to the PHP function example_ajax_request, // This outputs the result of the ajax request, // The $_REQUEST contains all the data sent via ajax, // Let's take the data that was sent and do something with it, // Now we'll return it to the javascript function, // Anything outputted will be returned in the response, // If you're debugging, it might be useful to see what was sent in the $_REQUEST, // Always die in functions echoing ajax content, // If you wanted to also use the function for non-logged in users (in a theme for example).