2011-06-26 28 views
2

我试图加载页面不同,如果它是一个职位或GET,后似乎像jQuery将有东西,所以我可以做检测如果请求是在jQuery的

if (isPost()) 
    { 
     // do something if this page was a post 
    } 

我m根据请求类型显示/隐藏某些内容,并希望使用javascript专门执行此操作。我可以用我正在使用的框架轻松完成,但不想。

回答

2

这里的问题是,你是混淆客户端与服务器端。

GET,POST,PUT,DELETE等都是从客户端(例如:浏览器)发送到服务器的HTTP'方法'。然后,服务器以相应的HTTP响应进行响应,通常以包含HTML的内容的形式进行响应。

POST/GET/etc在客户端没有上下文来决定如何将请求发送到服务器。

认为浏览器是您的邮政信箱和POST/GET/etc是它交付的方法。当有人向您发送一封邮件时,他们会指定方法,例如头等邮件,隔夜快递或当天递送。邮局根据收到邮件的方式处理邮件,并使用适当的操作发送邮件。当您在邮箱中收取邮件时,您不知道是否通过标准邮件,隔夜快递或当天递送到达。你会知道的唯一方法是信封上的任何信息。

您的问题的解决方案将遵循同样的原则。为了解决这个问题,你需要做的是包含一个隐藏的值,jQuery可以在查询字符串,一个特殊的元素或隐藏的文本框中包含用于获取页面的HTTP方法。

这要求相应地更改服务器端代码,以便将该信息推送回客户端。

希望能帮助我们澄清一点。

+0

谢谢!是的,这清除了它。我希望以某种方式JavaScript可以读取响应头......但没有骰子。 –

0

我不知道这是否真的有可能在JavaScript中。但是你可以检查是否有一个查询字符串是GET的URL

if (location.search.length > 1) { 
    // your code. 

} 

location.search在这种情况下location.search将?id=1&value=3包括返回的查询字符串的URL

http://example.com/index.html?id=1&value=3 

问号。

所以如果存在的话,那么你有一个GET