質問: 現在C#のMVC手法を用いてajaxでの非同期通信を実装している処理がありますが以下記載の挙動が理化できず、お分かりになる方がいればご教授頂きたく。 Ajax呼び出し元ページURL http://xxx/test/index Ajax呼出し後のURL http://xxx/test/index**?** 上記のようにajax呼出し後はurlに”?”のみが付与されます。 この?は何の意味があるのでしょうか。 また、ajax通信に関して"?"がついていないURLから呼び出すと通信が失敗し、 その後、urlに"?"が付与され、この状態で再実行すると正常に処理されます。 ajax呼出URLは "/test/update" です。(C#のMVCを使用している)
回答: URL を構成する文字列上で、? は「以後、GET のパラメータが続く」というデリミタとなります。 ※? で終わっている場合は、「パラメータがない」という意味になる ただ、普通は ? のあるなしはサーバー側(ASP.NET)側で緩く解釈されるはずで、? がついていないとダメ、というのは、独自に URL を解釈する処理が入っているのではないでしょうか?(そしてその作りが悪く、? を省略できない仕組みになっているとか)