如何确保使用ajax?

时间:2012-10-06 06:48:15

标签: php jquery ajax

  

可能重复:
  Detecting Ajax in PHP and making sure request was from my own website

我有一张上传图片的表单,我正在使用Ajaxform()

$('#uploadformimage').ajaxForm({

    beforeSend: function() {
         $(".progress").css("display","block");
         $("#response").html("");
        status.empty();
        var percentVal = '0%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    uploadProgress: function(event, position, total, percentComplete) {
        var percentVal = percentComplete + '%';
        bar.width(percentVal)
        percent.html(percentVal);
        //console.log(percentVal, position, total);
    },
    complete: function(xhr) {
            $(".bar").css("width","100%");
            $(".percent").html("100%").delay("8000").parent().slideUp(1000);
            $("#response").html(xhr.responseText);

    }
}); 

这是我的javascript代码。我想找出server-side表单是否由ajax上传? 某些计算机上可能禁用了Javascript,因此我想显示一些不同的数据?

5 个答案:

答案 0 :(得分:2)

if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest')
{
    // This is an AJAX request
}

答案 1 :(得分:1)

我构建了一个演示,这是结果

Request URL:http://localhost/test.php
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:32
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:localhost
Origin:http://localhost
Referer:http://localhost/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11
X-Requested-With:XMLHttpRequest

答案 2 :(得分:0)

您可以传递选项GET /foo?xhr=1

然后在PHP $_GET['xhr']

答案 3 :(得分:0)

让我们假设没有参与AJAX。

所有Javascript / AJAX都可以实现的目的是让用户体验优于竞争对手。

那么,为什么要关注图片,以便上传它的人。那个人可能没有Javascript,

尽量减少并添加铃声和口哨!

答案 4 :(得分:0)

您可以使用HTML中的<noscript>标记生成不同的HTML,因此表单可以发布到不同的服务器端脚本或向表单添加隐藏字段。