Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Undefined" appearing sometimes in the URL of my ASP.NET application (somehow google related?)

Some users repeatedly run into a very mysterious problem when using my web application.

In the middle of using it, they'll click a button or link that takes them to another page, but there will be a "page not found" error, because the URL is something like:

http://www.correctwebsitename.com/undefined

I thought it might be a javascript bug in my app: a redirect done by choosing a page name (maybe with some parameters) where one of the values is bad, resulting in the page name = "undefined". But there is no such code in my app anywhere, and this happens on many different pages, seemingly at random.

The one thing that seems to make it happen more often is if the user logged in originally by clicking a link in an email message in gmail. But a user who cut and pasted the link URL into a browser window said it still happened. Googling around reveals some hints that some kind of Google redirecting or caching is happening behind the scenes.

Any ideas?

Edit:
I'm not getting responses from anyone familiar with how gmail links etc work, does anyone know what SO tags google experts "hang around in"?

Edit 2:
Awarding bounty to top answer for useful info and temporary workaround idea, but still interested in real solution to the problem, so not accepting workaround as solution.

like image 961
MGOwen Avatar asked Sep 27 '12 02:09

MGOwen


1 Answers

I believe you are right about gmail doing something with the links. See the gmail image below:

gmail

Non-standard header fields are conventionally marked by prefixing the field name with X-

Its probably behaving like... oh well, Google, and inspecting everything.

To stop google search from tracking my clicks i had to create a userscript to rewrite one of their functions:

rwt = function(){};

Maybe you can try something similar for gmail.


What is rwt?

rwt() is a javascript function from google search that rewrites the links to track which site you have visited.

for example, searching for "greasemonkey" showed the mozilla addons page as the first result. clicking on it opened

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCUQFjAA&url=https%3A%2F%2Faddons.mozilla.org%2Fpt-BR%2Ffirefox%2Faddon%2Fgreasemonkey%2F&ei=iWNtUIXjIoyQ8wTxv4DQAQ&usg=AFQjCNEO9EJcHp9rAmKyD_XZF2Bt6hs_YQ&sig2=P19xVUsD-Q1G_9AiUBP3PQ

and then redirected to

https://addons.mozilla.org/pt-BR/firefox/addon/greasemonkey/

The image above and the rwt() case is just to show you that there is a great chance that gmail is changing the links, so this could be related to your problem.


Since there is nothing you can do at gmail's side, maybe you could fix it on your server, by redirecting http://www.correctwebsitename.com/undefined to http://www.correctwebsitename.com or any other page that you'd like your users to see.

So, be it from gmail or any other referer, every time a client lands on http://www.correctwebsitename.com/undefined redirect him to another page.


so maybe I can figure out how to just send them back to the page they came from

ASP

if not request.UrlReferrer is nothing then
    response.redirect (request.UrlReferrer.tostring)
end if

JS (for this to work, you would have to actually create a page called undefined)

if (window.location.href.toLowerCase().indexOf('undefined') > -1) {
    // this works
    window.location.href = document.referrer;

    // this works too (uncomment to enable)
    // history.back();
}

remember that if the user directly typed the url or used the link from favorites there wont be no referrer

like image 147
RASG Avatar answered Oct 04 '22 22:10

RASG