Jquery ajax帖子标题问题(我认为)

时间:2010-08-19 09:26:33

标签: forms jquery

我认为这很容易,但我不确定正确的语法是什么。我通过JQuery ajax发布表单 - 你知道

    $j.ajax({ 
    type: "post", etc.....

但是如果禁用Java,我需要确保表单能够被处理。是否在ajax发送中有一个“标题”,可用于将其标识为普通帖子,以便在完成时是否可以返回发送页面的ajaxed或普通的php帖子。如果没有ajaxed我可以使用if($update): header('location: ...'); endif;但是如果我使用它与ajax请求它会停止ajax成功函数。希望有所作为

4 个答案:

答案 0 :(得分:1)

是的,jQuery在执行AJAX请求时设置自定义标头:

X-Requested-With : XMLHttpRequest

编辑russp的服务器端PHP代码:

define('IS_AJAX_REQUEST', isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
    strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
if( IS_AJAX_REQUEST )
    { //This is an AJAX request, do AJAX specific stuff }
else
    { //This is not an AJAX request }

答案 1 :(得分:0)

不要真正了解标题,但是更简单的解决方案是在ajax上下文中执行此操作时,只需使用额外的参数调用处理页面的url?

然后,页面可以简单地检查参数是否存在,并根据它采取适当的操作。

答案 2 :(得分:0)

您需要做很多事情或者解决这些问题,但是您可以结合使用<noscript>和javascript代码来获取所需内容。

请参阅WWW FAQs: How do I detect JavaScript in the user's browser?

希望能帮助您入门。

答案 3 :(得分:0)

处理ajax表单请求的常用方法是将表单编写为没有任何类型的JS工作,所以如果你在一个基本的php文件中,你将从

开始
<?php
if(count($_POST) > 0) {
    //process form entries
} else {
    //output form
}
?>

然后你会添加一些jQuery来劫持提交点击所以

$('input[type=submit]').live("click", function(e) {
     e.preventDefault();

     //ajax post here

     //IE
     return false;
});